**我有一个对象,它在页面运行的前一阶段是不可点击的,等到下一阶段时点击有其他事情发生。我对这个对象写了两个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 回答
不负相思意
TA贡献1777条经验 获得超10个赞
你这种注册事件方法,会覆盖注册,这样object就只能持有一个handler
你可以看看addEventLinstener的方式添加事件,这样的方式可以为同一个事件添加多个事件处理函数;
另,基于你现在的做法,你可以按如下做
因为你覆盖了方法1,就算你移除方法method2,方法1中注册的click事件也不会再执行了
既然你有俩个方法,
你要执行1,你就在执行之前先调用一下method1去覆盖方法;
你要执行2,你就在执行之前调用一下method2去覆盖原有的方法,不需要移除。
添加回答
举报
0/150
提交
取消
