锚点上的event.target(<a> tags ) error/bug?</a>

时间:2010-08-05 08:40:54

标签: jquery events

的HTML

<ul>
    <li><a href="#" >Link</a>
        <ul>
            <li><a href="#" >Link</a></li>
            <li><a href="#" >Link</a></li>
        </ul>
    </li>
</ul>​

的jQuery

$(function(){
    $('ul').click(function(event){
        alert(event.target);
        return false;
    });
});

当有人点击锚点时,有人会打我的头并告诉我为什么 event.target给我一个url?我期待它给我[object HTMLAElement]。就像点击[object HTMLLIElement]元素时li一样。 sample fiddle


我已阅读此link, jquery-anchor-click-this-e-target-returns-url,但似乎没有回答我的问题。

2 个答案:

答案 0 :(得分:4)

一切都好!它只是任何链接的表示。您仍然可以使用event.target.href甚至event.target.id等等。

  

某些元素(如HTMLAnchorElement)具有特殊的toString函数,可以防止您轻松找到其类名。如果在位置栏中键入javascript:alert(document.links [0]),您将看到第一个链接的URL而不是其类名。解决这个问题的方法是在对象document.links [0]上使用默认的toString函数,如下所示:javascript:alert(window.toString.apply(document.links [0]))。

来自here

答案 1 :(得分:1)

对于遇到此问题的其他人,请尝试使用:

var element = event.target ? event.target : event.srcElement;