Подтвердить что ты не робот

JQuery нажмите на добавленные элементы

Я создал некоторые html-ссылки с jQuery и добавил их к некоторому div но он швы, что я не могу вызвать метод click сейчас, когда эти элементы добавляются (он работал нормально, когда они были жестко закодированы в html) $('#something a').click(function() ...

Кто-нибудь знает решение для этого?

4b9b3361

Ответ 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() .....