鍍金池/ 問答/Java  HTML/ 怎么在頁面運(yùn)行時(shí)禁止onload事件,使某個(gè)事件失效。

怎么在頁面運(yùn)行時(shí)禁止onload事件,使某個(gè)事件失效。

**我有一個(gè)對(duì)象,它在頁面運(yùn)行的前一階段是不可點(diǎn)擊的,等到下一階段時(shí)點(diǎn)擊有其他事情發(fā)生。

我對(duì)這個(gè)對(duì)象寫了兩個(gè)onclick的方法,在頁面onload時(shí)運(yùn)行。第二個(gè)會(huì)method2方法覆蓋掉第一個(gè)method1方法,這也是預(yù)期發(fā)生的事情。

現(xiàn)在我需要運(yùn)行第一個(gè)method1.按道理我移除掉第二個(gè)方法就可以運(yùn)行了,問題是:我用什么樣的方法去移除method2這個(gè)方法。**

window.onload=function(){
     method1();
     method2();
}
function method1(){
var object=document.getElementById(object); //與method2中的對(duì)象相同
   object.onclick=function(){
     console.log('OK');
  }
}
function method2(){
var object=document.getElementById(object);
   object.onclick=function(){
     alert("disable");
  }
}
回答
編輯回答
笨小蛋
object.onclick=function(){
  // do something

  object.onclick = null
}
2017年12月25日 20:44
編輯回答
刮刮樂
你這種注冊(cè)事件方法,會(huì)覆蓋注冊(cè),這樣object就只能持有一個(gè)handler
你可以看看addEventLinstener的方式添加事件,這樣的方式可以為同一個(gè)事件添加多個(gè)事件處理函數(shù);

另,基于你現(xiàn)在的做法,你可以按如下做
因?yàn)槟愀采w了方法1,就算你移除方法method2,方法1中注冊(cè)的click事件也不會(huì)再執(zhí)行了
既然你有倆個(gè)方法,
你要執(zhí)行1,你就在執(zhí)行之前先調(diào)用一下method1去覆蓋方法;
你要執(zhí)行2,你就在執(zhí)行之前調(diào)用一下method2去覆蓋原有的方法,不需要移除。
2018年4月28日 20:44