jquery的bind跟on繫結事件的區別
阿新 • • 發佈:2020-12-14
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事件;
資源搜尋網站大全 https://www.renrenfan.com.cn 廣州VI設計公司https://www.houdianzi.com
那麼這個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>jsnew li<li>‘);‘);這個新加的li是不會被綁上click事件的
但是我用$(‘ul‘).on(‘click‘, ‘li‘, function(){console.log(‘click‘);}方式繫結,然後動態新增li:$(‘ul‘).append(‘<li>js new li<li>‘);這個新生成的li被綁上了click事件