使用jQuery,我如何暂时拦截超链接点击事件?

这个问题涉及联盟营销,但实际上是一个关于在超链接到其他站点之前拦截超链接的一般性问题,您可以将访问者活动记录到数据库。

我的联盟营销客户有一个非常好的问题。 想象一下,如果有一个种子关键字,你可以通过API从亚马逊取回产品。 现在假设访问者点击其中一个产品在亚马逊上查看它。 该产品的URL可能如下所示(这只是一个演示):

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

但是猜猜那有什么不对? 它没有传递种子关键字。 因此,我们不知道哪个种子关键字最有效。 相反,她希望我们可以通过以下内容,然后以某种方式跟踪:

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

我没有在亚马逊上看到任何文档,我们可以传递额外的参数,然后通过filter在报告中跟踪它们。

所以,我唯一能想到的就是我们需要在它离开亚马逊之前捕获点击。 换句话说,在该事件冒泡并执行之前,在jQuery中我可以先拦截它,解析该超链接的href URL,添加这个额外的种子关键字信息,通过AJAX将其发送回PHP页面和数据库表,然后释放该click事件,以便它被执行并且浏览器将关闭到Amazon。

有谁知道这是如何在jQuery中完成的? 我知道AJAX部分 – 只是没有抓取点击的点击拦截部分,然后释放它。

var seed = "&seed=laptops"; $("a").live('click',function(){ $(this).attr('href', $(this).attr('href')+seed); }); 

您可以将click事件绑定到所有锚标记,例如

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

如果要执行默认操作,则return true; 在这个function的最后。