2013-05-29 45 views
0

我在我的应用程序的顶部导航链接:如何覆盖A标签中的onclick事件?

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

我需要做的就是使用jQuery双方的“href”覆盖和“点击”属性,这样,每当这个用户点击链接我显示我的自定义提醒。

下面是我到目前为止的代码。然而问题是,警报显示了一秒钟,然后重定向到主菜单页面仍然发生的因某种原因分数:

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

它看起来像“onClick =”导航('main');返回false;“”线是这里的问题。当我删除该代码时,jQuery代码开始工作。但是,我无法修改此代码,因为它与其他屏幕共享并需要保持原样。那么如何清空onClick事件呢? – goe

回答

1

通过使用jQuery的event.preventDefault() method,在event作为参数传递并拨打电话preventDefault()

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

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

我们有相同的姓氏! – surfitscrollit

+0

它不起作用,我仍然重定向回主菜单页面 – goe

+1

@GOE我无法复制该问题。 http://jsfiddle.net/JamesD/Zcp6Q/ –

0

您可以简单地写。

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

这不起作用。 – goe

0

尝试return false

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

它不起作用,我仍然重定向回到主菜单页面 – goe

0

您可以尝试使用实时功能

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

    }); 
+0

生活被弃用顺便说一句,这与OP问题无关 –

0

也许你想这样的:

http://jsfiddle.net/LZ6gx/

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

没有解决我的问题 – goe

+0

这工作,所以'你的问题'来自其他地方。 –