event.target на якорях (<a> теги) ошибка / ошибка? - PullRequest
1 голос
/ 05 августа 2010

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 элемент. образец скрипки .


Я прочитал эту ссылку, jquery-anchor-click-this-e-target-return-url , но, похоже, не отвечает на мой вопрос.

Ответы [ 2 ]

4 голосов
/ 05 августа 2010

Все хорошо! Это просто представление любой ссылки. Вы все еще можете использовать event.target.href или даже event.target.id и т. Д.

Некоторые элементы, такие как HTMLAnchorElement, имеют специальные функции toString, которые не позволяют легко найти их имя класса. Если вы введете javascript: alert (document.links [0]) в адресной строке, вы увидите URL первой ссылки вместо ее имени класса. Чтобы обойти эту проблему, используйте функцию toString по умолчанию для объекта document.links [0], например так: javascript: alert (window.toString.apply (document.links [0])).

С здесь .

1 голос
/ 13 февраля 2013

Для всех, кто сталкивался с этой проблемой, попробуйте использовать:

var element = event.target ? event.target : event.srcElement;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...