jQuery, как я могу взаимодействовать с контентом, загруженным ajax? - PullRequest
2 голосов
/ 13 июля 2011

Я успешно загружаю контент с помощью

jQuery(".menu li a").click( function(event){

    jQuery("#loadingArea").load(this.href)

});

После загрузки контента на моей странице появились новые элементы. Я попытался применить манипуляции с jQuery (что-то сделать, когда я щелкаю или наведите курсор мыши), и элемент не отвечает.

Пожалуйста, объясните мне, почему я не могу вызвать события в контенте, который был загружен через ajax?

Имеет ли метод .load () какое-то отношение к этому (т. Е. Если бы я использовал $ .ajax, я мог бы взаимодействовать с таким контентом)?

Спасибо,

Ответы [ 6 ]

3 голосов
/ 13 июля 2011
jQuery(".menu li a").click( function(event){

    jQuery("#loadingArea").load(this.href);

});

jQuery("#loadingArea a").live('click', function() {

    /* Insert eMagic! */

});
2 голосов
/ 06 ноября 2013

.live() теперь удалено

Вот способ сделать это сейчас:

$(document).on("click",".menu li a",function(e){

});
2 голосов
/ 13 июля 2011

Вам придется использовать .live () или .delegate ()

так что делегированный контент также делегируется

0 голосов
/ 13 июля 2011

.live() или .delegate() помогут вам здесь. потому что новые элементы отсутствуют при запуске, в тот момент, когда вы связываете функции, они не будут применены. При использовании live () событие всплывает, и вы можете привязать к нему событие

0 голосов
/ 13 июля 2011

вы должны использовать живые обработчики событий для контента, загруженного AJAX

$("a").live("click",function(){
// your code
});

live привязывает события как к будущим элементам, так и к существующим.

0 голосов
/ 13 июля 2011

.live() является ответом на вашу проблему:

http://api.jquery.com/live/

Из документов:

Метод .live () может влиять на элементы, которые еще не были добавлено в DOM с помощью делегирования события: привязка обработчика элемент предка отвечает за события, которые инициируются на его потомки. Обработчик, переданный в .live (), никогда не привязывается к элемент; вместо этого .live () связывает специальный обработчик с корнем Дерево DOM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...