Подтвердить что ты не робот

Предотвращение поведения якоря

Когда я хочу предотвратить поведение по умолчанию для привязывающего тега, я использую

<a href="javascript:void(0);">link</a>

Какое наиболее эффективное решение?

4b9b3361

Ответ 1

Пример изящно унизительного решения:

<a href="no-script.html" id="myLink">link</a>

<script>
document.getElementById("myLink").onclick = function() {
    // do things, and then
    return false;
};
</script>

Демо: http://jsfiddle.net/karim79/PkgWL/1/

Ответ 2

Это хороший подход, если вы используете jquery, вы также можете сделать:

<a id="link" href="javascript:void(0)">link</a>

<script type="text/javascript">
   $("#link").click(function(ev) {
       ev.preventDefault();
   });
</script>

preventDefault может быть полезен также для предотвращения отправки формы

Ответ 3

У вас также может быть следующее:

<a href="#" onclick="return false;">link</a>

Ответ 4

Если вы никогда не хотите, чтобы браузер следил за ссылкой в ​​любом месте, я бы сказал, что у вас есть самое простое и безопасное решение.

Конечно, есть куча других решений, которые вы могли бы применить с javascript, но большинство других способов могут потерпеть неудачу, если

  • DOM не полностью загружен, если событие назначено в DOMReady или позже, что является общим.
  • Слушатель событий щелчка обрабатывает ссылку (которая является общей, где вы хотите, чтобы ссылки не поддерживались браузером). Если в javascript, который обрабатывает клик, возникает ошибка, return false; или preventDefault, которая может быть в конце инструкции, не будет выполнена, и браузер будет следовать по ссылке, если только до #.

Ответ 5

Здесь очень простой способ остановить это.

( function( $ ) {
   $( 'a[href="#"]' ).click( function(e) {
      e.preventDefault();
   } );
} )( jQuery );

Ответ 6

я все еще думаю, что использование javascript:void(0) является своего рода лучшим способом обработки поведения тега привязки для некоторых из нас, кто использует angular, но если есть лучший способ решить проблему в angular, пожалуйста, я хотел бы выбрать ваш мозг по этому вопросу.

Ответ 7

Я знаю это старая тема, но вот что я часто использую

Вместо этого:

<a href="javascript:void(0);">link</a>

Это также может работать:

<a href="javascript:;">link</a>