2012-09-06 60 views
0

阅读this Q&A后,我可以通过单击链接将特定div的URL传递给jQuery。不过,我有多个页面链接,我想在点击时将他们各自的href值传递给jQuery。眼下代码选择页面上的所有链接:将点击链接的目标网址传递给javascript/jQuery

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

这样做的结果是目前它弹出显示在页面上的第一个链接的href属性对话框,无论链接被点击其中。我如何改变这个,给我刚才点击的链接的href?

回答

7

这应该工作。变化:

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

要:

href = $(this).attr('href'); 
+0

没有测试,但看起来正确。 – siliconrockstar

1

首先,它的使用eventdelegation所以你实际上并不为你的页面上的每一个环节创造一个处理一个好主意。

在你的情况下,jQuery将你的点击处理程序中的this绑定到click事件目标(被点击的元素),所以你需要做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; 
});​​​