2014-02-16 4 views
-1

Я загружаю элементы страницы ajax, а некоторые из них имеют детей с классом «evented». Мне нужно добавить класс к родительскому элементу при нагрузке на ребенка. Я пробовал этопрослушиватели событий при загрузке ajax

$(document).on('load','.evented',function(){   
    $('.evented').parent().closest('td').addClass('td_class'); 
}); 

Но, как и ожидалось, он не работает, потому что td не имеет события «загрузки». Я могу выполнить этот код как часть ответа ajax, но в этом случае у меня будут повторяющиеся прослушиватели событий, и мне по-прежнему нужен такой же код для элементов, которые существуют, когда документ готов.

+0

Итак, хотите ли вы добавить класс «evented» или событие к тем элементам, которые вы создаете? – Shannon

+0

Мне нужно добавить класс. –

ответ

0

Я предполагаю, что вы используете метод load() для загрузки содержимого. В этом случае вы должны использовать обработчик успеха метода загрузки для этого.

$(el).load(url, function(){ 
    $(this).find('.evented').closest('td').addClass('td_class'); 
}) 

Если вы не используете метод загрузки(), а другие методы, такие как Ajax $ .ajax()/$. Получить() и т.д., то после добавления содержимого на страницу вы должны сделайте это как

$.ajax(...).done(function(result){ 
    $(el).html(result).find('.evented').closest('td').addClass('td_class'); 
}) 
Смежные вопросы