Я понимаю, что .live() был удален из jQuery 1.9 и что должен использоваться метод .on() вместо. Пока .on() отлично работает для меня, если селектор является строкой. Например,
$("a.offsite").live("click", function(){ alert("Goodbye!"); });
превратился в
$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); });
Но как же я использую .он() для объекта JQuery селектор (или совокупность объектов) следующим образом?
var jele = $('.nav').find("a.offsite");
$(jele).live("click", function(){ alert("Goodbye!"); });
превратился в
var jele = $('.nav').find("a.offsite");
$(document).on("click", jele, function(){ alert("Goodbye!"); });
ли код выше конвертируется правильно? Проблема, с которой я сталкиваюсь, - это другие обработчики событий, связанные с одним и тем же событием, но другой селектор также выполняется при срабатывании события. Поэтому я подозреваю, что это не правильный путь, но я не могу найти подобного примера в официальной документации.
Я знаю, что я мог передать селекторную строку вместо объекта jele в метод .on(), но в некоторых случаях у меня просто нет доступа к строке селектора, например. когда объект jele передается в качестве аргумента в функцию, в которой происходит привязка.
Спасибо, но это не сработает, если элемент helml jele еще не существует (например. загруженный с использованием AJAX). Вот почему я сначала использовал .live(). Чтобы процитировать документацию, «Обработчики событий привязаны только к выбранным в данный момент элементам, они должны существовать на странице в момент, когда ваш код выполняет вызов .on()». – shengloong
Хорошо, я понимаю вас сейчас. Позвольте мне отредактировать мой ответ, и я надеюсь, что смогу вам помочь. – JordiVilaplana