怎么在页面运行时禁止onload事件,使某个事件失效。

**我有一个对象,它在页面运行的前一阶段是不可点击的,等到下一阶段时点击有其他事情发生。

我对这个对象写了两个onclick的方法,在页面onload时运行。第二个会method2方法覆盖掉第一个method1方法,这也是预期发生的事情。

现在我需要运行第一个method1.按道理我移除掉第二个方法就可以运行了,问题是:我用什么样的方法去移除method2这个方法。**

window.onload=function(){
     method1();
     method2();
}
function method1(){
var object=document.getElementById(object); //与method2中的对象相同
   object.onclick=function(){
     console.log('OK');
  }
}
function method2(){
var object=document.getElementById(object);
   object.onclick=function(){
     alert("disable");
  }
}
阅读 2.7k
2 个回答
你这种注册事件方法,会覆盖注册,这样object就只能持有一个handler
你可以看看addEventLinstener的方式添加事件,这样的方式可以为同一个事件添加多个事件处理函数;

另,基于你现在的做法,你可以按如下做
因为你覆盖了方法1,就算你移除方法method2,方法1中注册的click事件也不会再执行了
既然你有俩个方法,
你要执行1,你就在执行之前先调用一下method1去覆盖方法;
你要执行2,你就在执行之前调用一下method2去覆盖原有的方法,不需要移除。
object.onclick=function(){
  // do something

  object.onclick = null
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题