jquery $ это теряет отслеживание текущих тегов? - PullRequest
1 голос
/ 25 августа 2011

Я получил этот html-код из книги, которую я использую для изучения jquery. Я немного его изменил.Последний абзац это меняет текст.когда я нажимаю на эти две кнопки, они меняются на параграфы + текст.Все идет нормально.Но проблема, с которой я сталкиваюсь, заключается в понимании того, почему при наведении курсора на первый и второй (недавно появившиеся) абзацы не работает указатель мыши.Есть ли задержка в парсере Jquery.Или, может быть, я не знаю точно, как это работает.

спасибо

Ответы [ 3 ]

0 голосов
/ 25 августа 2011

Это связано с тем, что обработчик событий не подписан на события щелчка нового <p>.Вам следует либо установить обработчик событий вручную после добавления их в документ, либо использовать .live('click', function...) или, что лучше, плагин jQuery.livequery.

0 голосов
/ 25 августа 2011

измените .click на .live('click',function(){...}); и все будет хорошо. Причина указана выше: обработчики событий добавляются только к контенту, который уже существует. Если вы хотите добавить его к каждому контенту, который вы добавляете динамически, вы должны использовать .live.

0 голосов
/ 25 августа 2011

Созданные вами функции применяются только ко всем объектам, созданным при создании документа. Все, что было создано позже, то есть добавлено динамически, не получит эти обработчики событий.

См. Также этот вопрос: Функция jQuery click () недоступна в новых div

В основном, чтобы решить эту проблему, вам нужно использовать функцию jquery delegate, которая решит проблему.

(см. Здесь для объяснения, почему deligate(), а не live())

...