JavaScript:通过浏览器取消事件

时间:2009-02-19 15:49:32

标签: javascript events

我在asp.net网站上实现了一个浮动弹出窗口帮助控件,我正在使用JQuery来实现这些奇怪的位。

通过单击链接可以看到弹出窗口,该链接还有一个href到另一个页面以支持禁用JavaScript的用户。我添加了“return false;”到链接的onClick事件中的Javascript字符串的末尾,以防止导航到href值,并且非常高兴,直到我意识到这在Firefox中不受支持。

我遇到过几篇指向event.preventDefault方法的文章,该方法可用于让Firefox以相同的方式运行,但在所有情况下,所涉及的示例似乎都有一些繁琐的模式,即明确地向对象。

是否有一种简单的方法可以使这种语法起作用?我想让我的控制尽可能简单。代码示例:

<a id="myLink" 
onclick="javascript:$('#myPanel').addClass('helpPopOn');return
false;" href="/pages/help.aspx?content=TestHelp">Help</a>

2 个答案:

答案 0 :(得分:5)

明确添加事件繁琐

$("#myLink").click(function(e)
{
   $('#myPanel').addClass('helpPopOn');
   e.preventDefault();
});

答案 1 :(得分:1)

虽然Shog9的答案是正确的,但为了完整性,同样的逻辑显然也适用于内联处理程序:

<a id="myLink" onclick="javascript:$('#myPanel').addClass('helpPopOn');event.preventDefault();return false;" href="/pages/help.aspx?content=TestHelp">Help</a>