項目遇到過使用js動態加載內容,同時需要對加入的內容綁定點擊事件的,當時想想了想可以使用內聯的onclick 來實現,后來沒有這樣做,使用的是 on(‘click’,function(){}) ,然而使用on方法的時候就發現,on 對同一個元素多次綁定同一個事件的時候,這個事件就會執行多次。
1 $(function(){ 2 $(".add").click(function(eve){ 3 $(".btn-area").append("<button class='test-btn'>test button</button>"); 4
5 //$(".test-btn").off("click");
6 //$(".test-btn").unbind("click");
7 //$(".test-btn").unbind(); //去掉所有綁定事件
8
9 $(".test-btn").on("click",function(){ 10 console.log("test button ....."); 11 }); 12 }); 13 });
在點擊add按鈕的添加測試按鈕,測試按鈕綁定點擊事件,會出現執行多次的異常,
遇到這種情況需要在每次綁定事件之前,對該事件解綁,也就是
$(“.test-btn”).off(“click”); //解除綁定點擊事件
$(".test-btn").unbind("click");//移除綁定點擊事件
$(".test-btn").unbind(); //移除所有綁定事件
##如何可以的情況下,可以使用jquey的 $.click(function(){}),
##用此種方法綁定的事件在測試中未出現多次綁定的情況,
##推測測可能是對單個對象使用會覆蓋原先的執行事件。
