記錄一個關於 Document.on綁定事件後,致使頁面卡頓的狀況

假設當前頁面的js文件中有以下函數:函數

  function A(){
    function B();
  }

 function B(){
   $(document).on("click","#元素id",function(){
        dosomething……;
    });
}    

函數A是一個按鈕上綁定的onclick函數處理;spa

那麼每次點擊按鈕觸發A函數以後,都會致使B函數的執行,進而 $("#元素id") 這個元素就會綁定一次點擊事件。code

若是屢次觸發A函數以後,致使 $("#元素id") 上面綁定屢次的點擊事件,blog

而後再點擊 $("#元素id") 的時候,就會發現該元素上面的點擊事件的邏輯被執行屢次,進而致使頁面卡頓,表單重複提交等狀況。事件

爲避免這種狀況,就須要在使用on綁定函數的時候,先使用off解綁以前的函數。以下寫法:io

$(document).off("click").on("click","#元素id",function(){
        dosomething……;
    });

這樣既可避免 元素上綁定的點擊事件的邏輯重複執行屢次。function

相關文章
相關標籤/搜索