Можно ли запретить браузеру переходить по ссылке при срабатывании щелчка дочернего элемента? - PullRequest
15 голосов
/ 22 октября 2009

Вот что у меня есть в основном:

<a href="http://somelink.com">
    <span>stuff</span>
    <span onclick="AwesomeFunction();">more stuff</span>
    <span>the last stuff</span>
</a>

Теперь проблема в том, что я хочу сохранить родителя в качестве ссылки, но если пользователь щелкает диапазон с событием onclick, я не хочу, чтобы браузер следовал по ссылке.

Я пробовал

event.stopPropagation();

но это только кажется, что останавливает событие linksclick от запуска, или я делаю что-то не так.

В данный момент я нахожусь в режиме анализа, и я не хочу тратить слишком много времени на переписывание кода, генерирующего этот HTML, но это все равно не может быть взломом, поскольку оно реализовано в довольно важной функции сайт. Любая помощь приветствуется.

Ответы [ 3 ]

29 голосов
/ 22 октября 2009

Заставьте метод javascript возвращать false!

Или вы также можете использовать event.preventDefault() вместо event.stopPropagation()

8 голосов
/ 22 октября 2009
<a href="http://somelink.com">
    <span>stuff</span>
    <span onclick="AwsomeFunction(); return false;">more stuff</span>
    <span>the last stuff</span>
</a>
8 голосов
/ 22 октября 2009

конечно, просто верните false в onclick

что-то вроде

<a href="somwhere" onclick="return false;">nothing happens</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...