Created
July 22, 2016 16:54
-
-
Save aligator28/8f6a687ad261cbb98b7d6f8ca4754e50 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Я первый раз, когда наткнулся на эту проблему, тоже долго думал, почему не хочет клик обрабатывать. А потом доперло, что событие то было навешано до того, как появились новые элементы! | |
Тогда еще существовал метод live(), который уже deprecated. | |
Вместо него теперь метод on(), но конструкция чуть сложнее выглядит. Объясню на примере: | |
Допустим у нас есть документ со структурой: | |
<div class='container'> | |
<a href='page'>link</a> | |
</div> | |
В который мы будем добавлять новые элементы (не важно как мы их добавляем): | |
$('button').on('click', function() { | |
$('.container').append("<a href='page'>link</a>"); | |
}); | |
Собственно остался вопрос: как правильно повесить событие, чтобы и на уже имеющиеся элементы стояло событие, и на новые добавлялось? | |
Обратимся в документацию по методу on(), и видим такую вещь: | |
$('.container').on('click', 'a', function(){ | |
... | |
}); | |
Т.е. что произошло: мы задали во втором параметре тот селектор, на который хотим добавить событие. А в функции $() указываем, где будет происходить "поиск" селектора, который указан во втором параметре. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment