jquery的bind跟on綁定事件的區別:主要是事件冒泡;jquery
jquery文檔中bind和on函數綁定事件的用法:app
.bind(events [,eventData], handler)dom
.on(events [,selector] [,data], handler)函數
從文檔中能夠看出,.on方法比.bind方法多一個參數'selector'性能
.on的selector參數是篩選出調用.on方法的dom元素的指定子元素,如:spa
$('ul').on('click', 'li', function(){console.log('click');})就是篩選出ul下的li給其綁定click事件;事件
那麼這個selector參數的好處是什麼?文檔
好處在於.on方法io
原理是事件冒泡,進行事件委託,子元素把事件委託給父元素進行事件處理;console
這樣的好處
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事件