Не удается получить доступ к DOM html, загруженному jQuery

У меня есть страница с пустым div, и когда пользователь нажимает кнопку, функция jQuery выполняется и загружает некоторый контент. У меня проблема в том, что я не могу получить доступ к элементам внутри div.

Например, если ссылка загружена, если у меня есть функция, которая выполняется при нажатии на ссылку, она не действует, поскольку ссылка загружается.

РЕДАКТИРОВАТЬ: пример кода того, как я загружаю контент.

$('#all').click(function(e){
    e.preventDefault();
    all = true;
    $.ajax({
        type: 'POST',
        url: './?ajax=cars',
        data : {all : true},
        success: function(data){
            $('#ajaxTable').html(data);
        }
    });
});

person Paolo    schedule 19.11.2013    source источник
comment
Как мы можем знать, если мы не видим кода?   -  person Hanlet Escaño    schedule 20.11.2013
comment
Вам нужно будет использовать живые привязки для новых ссылок, чтобы подписаться на событие клика.   -  person Jamie Dixon    schedule 20.11.2013
comment
пожалуйста, не используйте live, его больше нет в jquery. Используйте $(parentSelector).on(click, фактический элемент, function(){//здесь идет код });   -  person eg_dac    schedule 20.11.2013
comment
Используйте .on() из jquery.   -  person Chandranshu    schedule 20.11.2013
comment
Опс, связал старый дурак. Этот дубликат более актуален: Как в jQuery прикреплять события к динамическим элементам html?   -  person Fabrício Matté    schedule 20.11.2013
comment
Где находится этот скрипт? Если в шапке, то работать не будет.   -  person Augusto    schedule 20.11.2013


Ответы (1)


Заменять:

$('#all').click(function(e){ /* code here */ });

С:

$(document).on('click', '#all', function(e){ /* code here */ });

Элемент #all создается после назначения события click, поэтому он не будет применяться к новому элементу #all. При использовании $(document).on() любое #all, содержащееся внутри документа, независимо от времени загрузки, будет отслеживать событие.

person MaKR    schedule 19.11.2013