为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕慕森 2019-03-12 13:15:09
**我有一个对象,它在页面运行的前一阶段是不可点击的,等到下一阶段时点击有其他事情发生。我对这个对象写了两个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去覆盖原有的方法,不需要移除。


查看完整回答
反对 回复 2019-04-05
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

object.onclick=function(){

  // do something


  object.onclick = null

}


查看完整回答
反对 回复 2019-04-05
  • 2 回答
  • 0 关注
  • 787 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号