Как с помощью jQuery временно перехватывать события кликов по гиперссылкам?

Этот вопрос относится к аффилированному маркетингу, но на самом деле это общий вопрос о перехвате гиперссылок до того, как они перейдут на другой сайт, где вы можете регистрировать активность посетителей в базе данных.

У моего клиента по партнерскому маркетингу был действительно хороший вопрос. Представьте себе сценарий, в котором у вас есть продукты, отозванные с Amazon через его API, с заданным ключевым словом. Теперь представьте, что посетитель нажимает на один из этих продуктов, чтобы просмотреть его на Amazon. URL-адрес этого продукта может выглядеть так (и это просто демонстрация):

http://www.amazon.com/dp/B0042RU3Y0/?tag=xxxxxxxxxxxxxxxx-20

Но угадайте, что в этом плохого? Это ключевое слово не передается. Таким образом, мы понятия не имеем, какие исходные ключевые слова были наиболее эффективными. Вместо этого она хотела, чтобы мы могли передать следующее, а затем как-то это отследить:

http://www.amazon.com/dp/B0042RU3Y0/?tag=xxxxxxxxxxxxxxxx-20&seed=laptops

Я не видел ни одной документации на Amazon, куда можно было бы передать лишние параметры, а затем отследить их в отчетах по фильтру.

Итак, единственное, о чем я мог подумать, это то, что нам нужно зафиксировать клик, прежде чем он попадет в Amazon. Другими словами, до того, как это событие всплывет и будет выполнено, каким-то образом в jQuery я могу сначала перехватить его, проанализировать URL-адрес href для этой гиперссылки, добавить эту дополнительную информацию о ключевом слове, отправить ее через AJAX обратно на страницу PHP и в базу данных. table, а затем отпустите это событие щелчка, чтобы оно было выполнено, и браузер перешел на Amazon.

Кто-нибудь знает, как это делается в jQuery? Я знаю часть AJAX — но не часть перехвата щелчка, которая захватывает щелчок, а затем отпускает его.


person Volomike    schedule 08.12.2010    source источник


Ответы (1)


Вы можете привязать событие клика ко всем тегам привязки, например

$("a").click(function(){
    // write your code
});

Если вы хотите выполнить действие по умолчанию, поставьте return true; в конце этой функции.

person rahul    schedule 08.12.2010
comment
Бинго! Это именно то, что мне нужно. Я и не знала, что такое возможно, спасибо большое! :) Я тестировал IE7+, Opera (последняя), Chrome (последняя), FF (последняя) и Safari/Windows (последняя), и все работает. Единственная дополнительная вещь, которую я добавил, это var u = $(this).attr('href'); так что я знаю, какой URL был нажат. - person Volomike; 08.12.2010
comment
Отличный и лаконичный ответ. В качестве обновления в более поздних версиях jQuery более подходящим способом будет вызов $("a").on('click',function(){... - person Trevor; 25.07.2013