3 回答

TA貢獻1818條經驗 獲得超8個贊
.bind()與.on()的區別:
(1)是否支持selector這個參數值。由于javascript的事件冒泡特性,如果在父元素上注冊了一個事件處理函數,當子元素上發生這個事件的時候,父元素上的事件處理函數也會被觸發。
如果使用on的時候,不設置selector,那么on與bind就沒有區別了。
(2)on綁定的事件處理函數,對于未來新增的元素一樣可以的,和delegate效果相同,而bind則不行。
(3) delegate用法與on()相同,只是參數的順序不同:
擴展資料:
.bind()與.on()的實際應用:
1.bind()是直接綁定在元素上 ,將一本地地址與一套接口捆綁。如無錯誤發生,則bind()返回0。否則的話,將返回-1,應用程序可通過WSAGetLastError()獲取相應錯誤代碼。
用于事件處理程序
function ClassName(){
this.eventHandler = (function(){
}).bind(this);
}
2.on()則實現事件代理, 可以在匹配元素上綁定一個或者多個事件處理函數。
(1) 用來綁定多事件,并且為同一函數,如:
$('div').on('click mouseover',function(){
//do sth
});
(2)多個事件綁定不同函數,如:
$('div').on({
'click':function(){
//do sth
},
'mouseover':function(){
//do sth
}
});
(3)事件代理,如:
html:
<button id="bt1">按鈕1</button>
jq:
$('#bt1').on('click',function(){
$('body').append('<button>按鈕2</button>');
});
$('body').on('click','.bt2',function(){
console.log('這是bt2');
}

TA貢獻1893條經驗 獲得超10個贊
.bind()是直接綁定在元素上
.live()則是通過冒泡的方式來綁定到元素上的。更適合列表類型的,綁定到document DOM節點上。和.bind()的優勢是支持動態數據。
.delegate()則是更精確的小范圍使用事件代理,性能優于.live()
.on()則是最新的1.9版本整合了之前的三種方式的新事件綁定機制

TA貢獻1772條經驗 獲得超8個贊
1、在on()方法介紹的與bind()方法的區別:As of jQuery 1.7, the .on() method provides all functionality required for attaching event handlers. For help in converting from older jQuery event methods, see.bind(), .delegate(), and .live(). To remove events bound with .on(), see .off(). To attach an event that runs only once and then removes itself, see .one()2、在bind()方法介紹的與on()方法的區別:As of jQuery 1.7, the .on() method is the preferred method for attaching event handlers to a document. For earlier versions, the .bind() method is used for attaching an event handler directly to elements.總結整理上述兩段英文的區別意思為:bind()函數是jQuery 1.7之前或更早版本采用的一個用來綁定事件處理程序的函數;on()函數是jQuery 1.7版本提供的首選的用來綁定事件處理程序的函數;從1.7版本的介紹以及參數描述來看,其實這兩個函數基本上用法一致,但可能在早期的版本中,bind()函數一次只能為標簽對象綁定一個事件的處理程序,而on()函數則可以一次為多個不同的事件綁定處理程序。
添加回答
舉報