单击jQuery后更改链接href

我正在尝试创建一个链接,当单击时,切换其href属性,然后转到该位置。

我的HTML是:

 

点击后,我希望浏览器转到data-wpurl位置,而不是href位置。 我使用数据属性的原因是因为我使用的应用程序需要使用href …这里不相关。

我的jQuery是:

 $('a[rel="group"]').on('click', function(e) { e.preventDefault(); var wpurl = $(this).attr("data-wpurl"); $(this).attr('href', wpurl); }); 

我正在使用e.preventDefault(); 防止浏览器将用户带到href。 将数据属性分配给href后,如何触发单击? 使用trigger('click')click(); 不工作!

有任何想法吗?

立即更改位置会更容易:

 e.preventDefault(); location.href = $(this).data('wpurl'); 

类似的解决方案,但无需调用e.preventDefault()

 $('a[rel="group"]').on('click', function(e) { e.originalEvent.currentTarget.href = $(this).data('wpurl'); }); 

从我的角度来看,这是一个更通用,更清洁的解决方案,因为这不会改变默认的浏览器行为(例如:当用户点击链接上的鼠标滚轮时,Jacks解决方案将不会打开新选项卡)

使用onmousedown。 Google会在搜索结果页面上使用此方法,以便他们可以跟踪您点击的内容。 如果您想查看链接的位置,请右键单击而不是向左键。 它们都会触发onmousedown事件。

http://jsfiddle.net/afLE3/

 CLICK HERE  

我认为你的原始jQuery很好,除了e.preventDefault():这将停止事件触发,无论你在那之后对href属性做了什么。

 $('a[rel="group"]').on('click', function(e) { var wpurl = $(this).attr("data-wpurl"); $(this).attr('href', wpurl); }); 

以上所有代码都将在页面刷新之前执行。