#javascript #jquery #onclick
#javascript #jquery #onclick
Вопрос:
Я думаю отслеживать все клики пользователей по объявлениям, которые у меня есть на моем веб-сайте (включая adsense и другие сети)
Как вы думаете, возможно ли было бы добавить прослушиватель событий с помощью jquery, который отправляет вызов ajax до того, как пользователь сможет открыть страницу рекламодателя?
Ответ №1:
Предполагая, что у вас есть все объявления, упакованные в контейнер с классом ad
, который вы могли бы сделать:
$('body').delegate('.ad', 'click', function(){
//YOUR AJAX CALL HERE
});
Я не совсем уверен, работает ли это с flash-контентом, но вы могли бы попробовать.
Комментарии:
1. Я думал добавить список событий для каждой ссылки на моей странице, а затем для ссылки, начинающейся, например, с googleads.g.doubleclick.net Я сделаю вызов ajax…
2. Можно сделать аналогичным образом
$('body').delegate('a', 'click', function(){ /*check link target */})
. Но я думаю, вы пропустите все ссылки, которые сделаны из содержимого flash. Не привязывайте событие к каждому a-элементу, используйте делегирование.3. Кроме того, привязка большого количества событий может замедлить работу некоторых браузеров. Делегат просто привязывает одно событие к телу и использует обработку событий для захвата события.
4. итак, в чем разница между delegate и live? : D
5. при использовании live jQuery необходимо выполнить поиск по указанному селектору один раз, при делегировании — нет. В противном случае $(‘body’). делегировать (‘a’ … и $(‘a’).live(… одинаковы. Кроме того, с помощью delegate вы можете указать цель делегирования, отличную от элемента body