jquery循環綁定事件需要注意坑


jquery給元素綁定事件的寫法

//方法一
$(a).bind("click", menuClick);
//方法二
$(a).bind("click", {data:menu}, menuClick);

當無需進行參數傳遞時可以使用方法一,但是在大多數情況下都是需要將一部分信息傳入到click事件中進行處理的,此時正確的方式是采用方法二的寫法。

錯誤的寫法如下:

//錯誤寫法一
$(a).bind("click", function(){
    menuClick(menu);
}); 

//錯誤寫法二
$(a).bind("click", menuClick(menu)); 

錯誤寫法一的結果為所有元素綁定的事件傳入的數據全部相同並且是最后一次循環的數據。

錯誤寫法二的結果為在代碼執行此行時事件就是執行。

注意:

在正確的綁定事件的寫法中,需要注意this的作用域,this指向為綁定事件的元素。

//此種情況this的指向為綁定該事件的元素,在menuClick中的this就是指向menuClick方法
$(a).bind("click", {menu:menu}, function(event){
    menuClick(this, event.data.menu);
});

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM