我有这个标记(简化):
<ul class="targets">
<li><a href="javascript:void(0);" class="info">A</a></li>
<li><a href="javascript:void(0);" class="info">B</a></li>
<li><a href="javascript:void(0);" class="info">C</a></li>
</ul>
这个脚本(简化):
$('.targets').click(function(e) {
alert(e.target); // alerts "javascript:void(0);"
});
我真正想要的是点击的锚点对象,而不是锚点的目标。
如果可以,我该怎么做?
它必须是列表中的锚点,但该函数也必须处理其他dom元素的点击。
答案 0 :(得分:4)
我认为您的混淆来自e.target
toString是href
属性,例如:
$('.targets').click(function(e) {
alert(e.target.nodeName); // alerts "A"
$(e.target).fadeOut(); //this would fade out the anchor you clicked on
});
e.target
你已经拥有的东西,你只需要访问你感兴趣的任何财产。否则,当您提醒它时,默认情况下会显示href
属性。
答案 1 :(得分:0)
$('.targets li a.info').click(function(e) {
alert(this); // alerts the anchor DOM object itself
alert(e.target); // alerts "javascript:void(0);" <- this *should* do the same
});
答案 2 :(得分:0)
它没有做你认为它正在做的事情; e.target
绝对是您的<a>
元素。尝试将其更改为alert(e.target.className)
以向自己证明。
答案 3 :(得分:0)
$('.targets li a').click(function(e) {
alert(this.attr('href'));
});
关键字“this”作为对手头元素的jQuery引用