JQuery нажмите на добавленные элементы
Я создал некоторые html-ссылки с jQuery и добавил их к некоторому div
но он швы, что я не могу вызвать метод click сейчас, когда эти элементы добавляются (он работал нормально, когда они были жестко закодированы в html)
$('#something a').click(function() ...
Кто-нибудь знает решение для этого?
Ответы
Ответ 1
Используйте .delegate()
для этих случаев:
$('#something').delegate('a', 'click', function() {
Это прикрепляет обработчик click
на #something
, а не направление к элементам <a>
внутри... поэтому он работает над привязками, добавленными позже. Альтернативная версия (хуже для нескольких причин) .live()
:
$('#something a').live('click', function() {
Ответ 2
Что также работает, это добавить событие [click] при добавлении элементов, например:
$('<someElement>').click(function(){
$('<someElement>').append('<htmlCodeToAppend>');
$('<appendedElement>').click(function() { /* do something */ });
});
Этот подход выполняет эту работу, но я не уверен, есть ли какие-либо предостережения - возможно, один из профессионалов мог бы вмешаться здесь.
Cheers,
Erik
Ответ 3
вам нужно использовать функцию live, чтобы убедиться, что событие click привязано к элементам, которые были добавлены в DOM после загрузки страницы:
$('#something a').live('click',function() .....