Распространение событий jQuery .live - PullRequest
0 голосов
/ 07 апреля 2011

У меня небольшая проблема с методом jQuery .live. Я использую его для перехвата событий ajax для Google Analytics на моем веб-сайте, но в случае, если у меня есть ссылка с внутренним изображением, событие click запускается из изображения, и мое событие click в привязке в реальном времени не перехватывает его.

Мне действительно не нравится каждый раз добавлять эти события вручную после изменения содержимого, и я не хочу связывать его с изображением (из-за отсутствующего параметра href, в этом случае я использовал какой-то метод .parent), так что лучше Кстати, как справиться с этим?

Примечание: я не уверен в эффективности метода .live, поэтому в случае больших различий в производительности, пожалуйста, сообщите мне об этом :) Я попытался профилировать его в профилировщике webkit, но я не увидел никакой разницы. .

Ответы [ 3 ]

0 голосов
/ 07 апреля 2011

Если у вас есть a, содержащий img, любое событие на img должно перейти к a, которое его поймает.

0 голосов
/ 07 апреля 2011

Вы также можете попробовать использовать метод .delegate () (http://api.jquery.com/delegate/)

Вот еще немного информации о .live () и делегат ():

Обновление:

Вот сообщение Юпитера 24 о том, «почему вы никогда не должны использовать jQuery live»:

0 голосов
/ 07 апреля 2011

Просто поместите обработчик click(function(event) { ... }) в статический родительский элемент и найдите элемент, который начал событие с event.target.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...