0

阅读此问答后,我能够在单击链接时将特定 div 的 URL 传递给 jQuery。但是,我有多个页面链接,我想在单击时将它们各自的 href 值传递给 jQuery。现在代码选择页面上的所有链接:

jQuery(document).ready(function(){
  jQuery(".view-frontpage a").click(function (event) {
    href = $('.view-frontpage a').attr('href');
    event.preventDefault();
    alert(href);
   });
});

当前的结果是它会弹出一个对话框,显示页面上第一个链接的 href 属性,而不管单击哪个链接。如何更改它以给我刚刚单击的链接的href?

4

2 回答 2

7

这应该有效。改变:

href = $('.view-frontpage a').attr('href');

到:

href = $(this).attr('href');
于 2012-09-06T19:44:14.443 回答
1

首先,使用事件 委托是个好主意,这样您实际上就不会为页面上的每个链接创建处理程序。

在您的情况下,jQuerythis在您的点击处理程序内绑定到点击事件目标(被点击的元素),因此您需要href = $(this).attr('href');获取所需链接的 href。

这是使用新的 jQuery on()函数的完整代码(从 1.7 开始可用)

$(document).on('click', '.view-frontpage a', function(e) {
    alert($(this).attr('href'));

    e.preventDefault();
    return false;
});​​​
于 2012-09-06T19:50:31.123 回答