Как предотвратить действие по умолчанию для тега привязки с помощью Javascript? - PullRequest
4 голосов
/ 23 февраля 2011

Я пытаюсь предотвратить действие по умолчанию для тега привязки ("a"). В моем сценарии несколько строк html отображаются на лету с помощью ajax (после отправки формы), и я хочу добавить прослушиватель событий, который

  1. выполняет действие при нажатии на вновь созданную ссылку

  2. запретить браузеру открывать эту ссылку.

Вот что я пишу:

a = document.getElementById("new_link");
a.addEventListener("click",function(){alert("preform action");
                                      return false;},false);

Я также пробовал:

a.addEventListener("click",function(e){e.preventDefault(); alert("preform action");});

Когда я нажимаю на ссылку «a», она показывает сообщение с предупреждением, но все равно открывает ссылку «href», где, как я хочу, она показывает сообщение и затем останавливается.

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

Любая помощь / предложения.

Спасибо.

Ответы [ 5 ]

5 голосов
/ 23 февраля 2011

Используя библиотеку jQuery, вы можете остановить событие, которое было связано с объектом jQ (в данном случае со всеми элементами), вызвав метод .preventDefault () для события, переданного как параметр обратного вызова.

Попробуйте это:

$('a').click( function(e) {
  e.preventDefault();
  alert("perform action");
});
4 голосов
/ 19 июля 2012

Возрождается старая тема, но я хотел предоставить опцию, не основанную на jQuery.

a = document.getElementById("new_link");
a.addEventListener("click",function(){
     alert("preform action");
     window.event.preventDefault();
},false);
3 голосов
/ 23 февраля 2011

Вы можете использовать идею, стоящую за плагином jquery-nolink , и сделать что-то вроде этого:

$('new_link').attr("href", "javascript:void(0);");
2 голосов
/ 03 июля 2013

просто вы можете сделать это, добавив "javascript: void (0);"в качестве значения 'href'

, например: -

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

или вы можете добиться этого с помощью jQuery

$('link-identifier').attr("href", "javascript:void(0);");
1 голос
/ 28 декабря 2013

Простой способ

Также существует простой способ сделать это

, то есть путем возврата логических значений ..

example :

 <a href='#link' onClick='return false;' > Prevent Link </a>;

Использование jquery, чтобы сделать его немного интереснее

$('a').click(function (){

   //or if you want to perform some conditions    
   if(condition){
     // your script
   }

   return false;
});

Надеюсь, это поможет 101

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...