функция непреднамеренно выполняется при использовании .live в jQuery - PullRequest
0 голосов
/ 27 апреля 2011

Я пытаюсь привязать обработчик события щелчка к некоторым элементам, которые создаются динамически.Но функция уже выполняется при простой загрузке страницы.Я также попробовал плагин livequery и .delegate, который также имел эту нежелательную привычку.

$(".pika_thumb").live("click" ,( function () {
    $("#video").hide();
    $(".pika_main").show();
}));

Как я могу предотвратить выполнение моей функции при других событиях, кроме нажатия на указанные элементы?

Ответы [ 3 ]

0 голосов
/ 27 апреля 2011

синтаксис:

$(".pika_thumb").live("click" , function () {
    $("#video").hide();
    $(".pika_main").show();
});

проверьте, нет ли у вас чего-то еще, что вызывает щелчок по вашему классу .pika_thumb.

0 голосов
/ 29 апреля 2011

Помимо скобок, мой последний рабочий код:

$("#gallery").delegate(".pika_thumb", "mousedown" , function () {
    $(".video-js").get(0).pause();
    $("#video").hide();
    $(".pika_main").show();
});

Спасибо всем!

0 голосов
/ 27 апреля 2011

Единственная очевидная ошибка - это скобки вокруг определения function() { }.

Однако это не приведет к немедленному вызову, если у вас тоже нет списка параметров (). Ваш фрагмент кода завершен?

...