2012-04-12 4 views
2

У меня есть пара Divs на моей странице с CSS class = "hello" Далее я использую Ajax для извлечения еще нескольких Divs с помощью CSS class = "hello" I есть кусок кода, который называется на Click случае дивы следующим образом:Как связать функцию с элементом, загруженным через Ajax

$('.hello').click(function(){ 
    alert("Hello Clicked"); 
}) 

Он отлично работает с дивами, которые присутствуют в моей странице с самим начала, но не работает с дивами загружен с использованием Ajax. Есть ли что-то, что мне нужно сделать, чтобы связать этот маленький кусок кода с недавно загруженными Divs тоже?

+0

Я согласен с Иосифом. Следуйте по ссылке, которую он предоставил, и прочитайте о делегировании событий. –

ответ

8

вы должны использовать .on привязать обработчик к другому элементу, который уже присутствует во время выполнения связывания, как сказать <body>, или document и он обнаружить ребенок событие. но в идеале вы должны связать его с ближайшим общим родителем загруженного содержимого.

demo

//bind to the body a "click" handler for elements that have class names of "hello" 
$('body').on('click','.hello',function(){ 
    alert("Hello Clicked"); 
}) 
+0

У меня возникла ошибка TypeError: Object [object Object] не имеет метода 'on'. Я предполагаю, что я использую более старую версию JQuery, и я был прав. Я обновился с 1.6.2 до 1.7.2, и теперь он работает. Благодарю. –

Смежные вопросы