在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ window.document.body.innerHTML替換頁面html導致

window.document.body.innerHTML替換頁面html導致事件失效,怎么解決事件失效?

window.document.body.innerHTML = newHtml 頁面重新渲染了,這個我知道,那怎么解決事件失效問題呢?求大神指教

回答
編輯回答
不將就

兩種方式:

  1. 利用事件代理,全部委托給document,然后通過targe確定事件源
document.addEventListener("click",function(e) { 
  // 檢查事件源e.targe
  if(e.target && xxxx) { 
    // 真正的處理過程在這里 
    console.log("你的處理事件函數"); 
  } 
});  
  1. 統一管理事件監(jiān)聽注銷

每次重新渲染前,注銷事件,渲染后,重新綁定,下面就是一個偽代碼,意會。

var Event = {
    init(){
        // 綁定你的各種dom元素事件
        dom1.addEventListener('click', () => {});
        dom2.addEventListener('click', () => {});
        ...
    },
    destroy(){
        // 銷毀你的各種事件
        dom1.removeEventListener('click', () => {});
        dom2.removeEventListener('click', () => {});
        ...
    }  
}

Event.destroy()
window.document.body.innerHTML = newHtml
Event.init()
2017年3月23日 08:56