Как вы отменяете ваш href = "javascript: void (null)"? - PullRequest
3 голосов
/ 30 октября 2009

Я недавно был укушен javascript: void (null); ошибка в моих hrefs применительно к изображениям.

В моей версии Safari (4.0.3 в Leopard PPC), когда я применяю href из javascript: void (null); вокруг изображения изображение полностью исчезает из макета. Оглядываясь вокруг, я вижу, что это происходит и в IE, хотя я не могу подтвердить.

Я прочитал, используя знак фунта (#) с обработчиком onclick

onclick="return false;"

Это работает, но я ненавижу добавлять фунт в URL.

Я знаю, что есть разные техники, так как вы справляетесь со своими hrefs?

Ответы [ 5 ]

6 голосов
/ 30 октября 2009

Как это

<a href="#" onclick="doSomething(); return false;">

или предпочтительно

<a href="nonJavascriptAlternative.html" id="foo">

затем присоедините обработчик с помощью javascript - в jQuery

$('foo').click(function() { doSomething(); return false; });
5 голосов
/ 30 октября 2009

Мой предпочтительный вариант -

<a href="non_javascript_alternative.html" onclick="doSomething(); return false;">

... где это возможно (что не всегда). Наличие обработчика события в атрибуте имеет следующие преимущества по сравнению с прикреплением события после загрузки документа:

  1. Простота
  2. Ясность
  3. Совместимость
  4. Обработчик событий JavaScript будет работать даже до загрузки документа.
2 голосов
/ 30 октября 2009

Если вы вернете false onclick, действие по щелчку отменяется, так что # не будет добавлено к URL

<a href="#" onclick="return false;">
1 голос
/ 30 октября 2009

Не используйте # по той причине, которую вы упомянули, и в некоторых браузерах, если пользователь прокручивается от вершины, щелкнув ссылку, он переместится обратно наверх. Я использую это:

<a href="javascript:"><img src=""/></a>

То, что не должно вызывать проблемы в любом браузере (по крайней мере, у меня еще не было проблем).

1 голос
/ 30 октября 2009

Я поместил действительные URL в мои ссылки. Почему вы делаете ссылки, которые ничего не делают?

 <span onclick="doSomething();" class="fakeLink"><!-- active elements --></span>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...