Jquery的bind跟on綁定事件的區別


Jquery的bind跟on綁定事件的區別:主要是事件冒泡(事件代理);

jquery文檔中bind和on函數綁定事件的用法:

.bind(events [,eventData], handler)

.on(events [,selector]  [,data], handler)

 

從文檔中可以看出,.on方法比.bind方法多一個參數'selector'

.on的selector參數是篩選出調用.on方法的dom元素的指定子元素,如:

$('ul').on('click', 'li', function(){console.log('click');})就是篩選出ul下的li給其綁定click事件;

 

那么這個selector參數的好處是什么?

好處在於.on方法

原理是事件冒泡,進行事件委托,子元素把事件委托給父元素進行事件處理;

這樣的好處 

1.萬一子元素非常多,給每個子元素都添加一個事件,會影響到性能;

2.為動態添加的元素也能綁上指定事件;

如:

$('ul li').on('click', function(){console.log('click');})的綁定方式和$('ul li').bind('click', function(){console.log('click');})一樣;我通過js給ul添加了一個li:$('ul').append('<li>js new li<li>');');這個新加的li是不會被綁上click事件的

但是我用$('ul').on('click', 'li', function(){console.log('click');}方式綁定,然后動態添加li:$('ul').append('<li>js new li<li>');這個新生成的li被綁上了click事件


免責聲明!

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



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