代码之家  ›  专栏  ›  技术社区  ›  Reigel Gallarde

锚上的event.target(<a>tags)错误/错误?

  •  1
  • Reigel Gallarde  · 技术社区  · 14 年前

    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 回复  |  直到 11 年前
        1
  •  4
  •   Daniel O'Hara    14 年前

    一切正常!它只是任何链接的表示。你还可以用 event.target.href 甚至 event.target.id 等等。

    有些元素(如htmlancholeElement)具有特殊的toString函数,这些函数使您无法轻松找到它们的类名。如果在位置栏中键入javascript:alert(document.links[0]),则会看到第一个链接的URL而不是类名。解决此问题的方法是在对象document.links[0]上使用默认的toString函数,如:javascript:alert(window.toString.apply(document.links[0])。

    here .

        2
  •  1
  •   Nick    11 年前

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

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