Я был над всей документацией для live() (которая теперь исчезла из jQuery), delegate() и on(). После восьми часов ударов по голове с этой проблемой я не могу понять, как это исправить. Я хочу добавить анонимную функцию в связку ссылок, которые создаются из данных, вносимых через AJAJ. Я попытался следующий код:jQuery.on() не работает при использовании в соответствии с документацией?
$("#more_items_outer").on(
'click',
'.show_more',
function(a){
var target = a.parentElement;
if (target.is(":visible")){
target.hide("slow");
} else {
target.show();
}
}
);
Этот код прекрасно работает, когда я запускаю его в консоли JS в моем браузере развития после загрузки страницы. Но этот код ничего не делает для этих ссылок, если он работает до создания реальных ссылок. Насколько я понимаю (как и многие источники, в том числе официальные документы jQuery, описывают это), функция on(), поскольку я использовал его в приведенном выше коде, должен сделать так, чтобы любой созданный элемент класса show_more поскольку потомок любого элемента с id «more_items_outer» выполнит анонимную функцию при нажатии. Это должно быть правдой, даже если создание нового элемента отправляет выполнение этого кода. Это не происходит в моей системе dev здесь, и я все понимаю, почему это может быть так. Я запускаю jQuery 1.9.1, если это помогает.
Ваш код выполняется после того, как dom был загружен? то есть. внутри блока $ (function() {..})? –
Эх, как вы нажимаете на ссылки в невидимых divs? – Oliver
Существует ли '# more_items_outer' при первой загрузке страницы и вызывается' on() '? –