我是jQuery的新手,所以请光临我......
我为所有设置的<a>
代码设置了一个jQuery事件
$('a').live('click', function(event)
我正在使用此
获取标签的hrefvar href = event.target.href;
这是我的HTML:
<a href="/test/path/">
<p>My Link</p>
</a>
当我点击var href
标记的区域时,我可以在控制台中成功记录<a>
,但是当我点击文本时<p>
标记<a>
我的控制台为event.target.href指出'undefined',为event.target指出'[object HTMLParagraphElement]'。
如何检查用户是否点击了该文字并获取了它所属的<a>
标记的href值?
答案 0 :(得分:5)
使用this
代替event.target
。
var href = this.href;
event.target
是点击次数最深的嵌套元素
this
是处理程序绑定到的元素(或者在像.live()
这样的委托的情况下,它是成功匹配选择器的元素)
答案 1 :(得分:3)
获取您的href值
$('a').live('click', function(){
var target=$(this).attr("href");
alert(target);
});
JsFiddle示例http://jsfiddle.net/Gz6mT/7/
如果您使用的是jQuery 1.7+,请使用.on()
附加活动的事件处理程序。从jQuery 1.7开始,不推荐使用live()
答案 2 :(得分:1)
首先,您应该使用.on
(如果可用),更糟糕的是.delegate
而不是.live
。除此之外,您可以从绑定事件的对象获取href
而不是目标:
var href = $(this).attr('href');
如果确实想要使用目标,您可以找到最接近的锚父:
var href = $(event.target).closest('a').attr('href');