2013-02-05 3 views
0

У меня есть несколько кнопок на странице, которые реагируют при нажатии. Теперь я передаю этот HTML-контент (содержащий эти кнопки) в пустой div, используя jQuery.Невозможно получить доступ к селектору при динамическом прохождении содержимого HTML

$('#main').html($('#sectionC').html()) 

#main является пустым DIV и #sectionC является DIV, содержащим эти кнопки. ОК? Все отображается правильно. Все кнопки от #sectionC имеют класс .btn, но следующий сценарий не работает, когда я передаю этот контент динамически.

$('.btn').click(function() { 
    $(this).toggleClass('btn-active') 
}) 

$('.btn').click просто не дозвонились вообще при нажатии на одну из этих кнопок.

Любые мысли?

ответ

3

Используйте jQuery on() для привязки события к динамически добавленным элементам.

$('#main').on('click', '.btn', function() { 
    $(this).toggleClass('btn-active') 
}) 
+0

Это исправление! Не совсем уверен, что я понимаю, почему. Благодарю. –

+1

on используется для делегирования события родительскому элементу, может быть документом, и он будет заботиться о элементе, который не присутствует в момент привязки события и добавляется позже. – Adil

+0

Подробнее здесь, http://api.jquery.com/on/ – Adil

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