取消FF中的javascript onclick事件

时间:2011-09-29 19:15:22

标签: javascript events firefox

我有onclick事件的linkbutton。我想在FF中取消onclick事件,有时用户可以点击,有时无法点击。我想取消从其他控件(下拉列表,文本框)触发的JS函数中的onclick事件。所以,我想写函数,有时候取消这个事件,有时候不要从页面上另一个元素触发的函数中取消这个事件。

示例:

function someFCE(linkButtonID)
{ 
  var linkButton = document.getElementById(linkButtonID);

  if (//firefox//)
 {
     if (//something//)
         //cancel event//
     }
 }

//取消事件//在哪里,请帮我编写代码来取消FF上的onclick事件。
对不起我的英语。


如果我理解正确,我可以在点击按钮后取消该活动。问题是,按钮有其他JS验证,这个按钮是危险的重写逻辑。
如果我用jquery添加其他点击事件来取消这个点击事件,这个取消事件在这个验证后调用。那么,是否有可能添加取消事件,在所有验证之前先调用,或者只是取消onclick事件?只在FF 感谢。

2 个答案:

答案 0 :(得分:6)

您应该向元素添加一个事件监听器:

linkButton.onclick = function(ev){
    ev.preventDefault();
    ev.stopPropagation();
}

event对象作为第一个参数传递给事件侦听器。可以在事件侦听器中调用event对象的方法。 preventDefault()可防止发生默认事件。 stopPropagation()取消事件的泡沫,以便其他事件侦听器不再接收该事件。

答案 1 :(得分:0)

如果要停止触发click事件,可以将LinkBut​​ton的onclick事件设置为null:

linkButton.onclick = null;

这将删除以前的函数,因此单击该按钮时,不会调用任何事件处理程序。