如何覆盖A标签中的onclick事件?

时间:2013-05-29 12:58:12

标签: jquery

我在我的应用程序的顶部导航中有这个链接:

<a class="nav" href="navigation.html?go=main" onClick="navigation('main'); return false;">Main Menu</a>

我需要做的是使用jQuery覆盖“href”和“onclick”属性,以便每当用户点击此链接时,我都会显示自定义提醒。

这是我到目前为止的代码。但问题是警报显示的时间只有几分之一秒,然后由于某种原因仍然会重定向到主菜单页面:

$('.nav').click(function() {
  $(this).attr("href","#");
  $(this).attr("click","alert('TEST')");
});

5 个答案:

答案 0 :(得分:1)

使用jQuery的event.preventDefault() method,传递event作为参数并在其上调用preventDefault()

$('.nav').click(function(event) {
    event.preventDefault();

    $(this).attr("href","#");
    $(this).attr("click","alert('TEST')");
});

答案 1 :(得分:0)

你可以简单地写。

$('.nav').click( function() { 
    //do something
    return false;
  } );

答案 2 :(得分:0)

尝试使用return false

$('.nav').click(function(event) {
   $(this).attr("href","#");
   $(this).attr("click","alert('TEST')");
   return false;
});

答案 3 :(得分:0)

您可以尝试使用实时功能

$(".nav").live('click',function(e){
   $(this).attr("href","#");
   $(this).attr("click","alert('TEST')");

    });

答案 4 :(得分:0)

也许你想要这个:

http://jsfiddle.net/LZ6gx/

$(function () {
    $('.nav').each(function () {
        $(this).attr("href", "#").attr("onClick", "alert('TEST');" + $(this).attr('onClick') + "");
    });
});