我在Web應用程序中使用jQuery。我一直在使用,.bind()但是我發現它有點慢,因此在閱讀我所閱讀的文檔.on()和時.delegate()。我了解.delegate()工作原理,但不清楚兩者之間的區別以及.on()在哪種情況下哪個更好。另外我正在使用jQuery 1.6,所以我想知道是否值得通過放置類似于以下內容的條件來為jQuery 1.7準備我的腳本:if(typeof $(selector).on == 'function'){ /* use .on() */}else{ /* use .delegate() */}這是一個好主意(為做準備.on())還是只為尋找麻煩而已?請幫助我清楚地了解這些方法。
3 回答

jeck貓
TA貢獻1909條經驗 獲得超7個贊
該.on()語法是新的語法,1.7版本的用途和它的目的是替代 .bind(),.delegate()和.live()。
此處更多-> http://blog.jquery.com/2011/11/03/jquery-1-7-released/
新的事件API:.on()和.off()
新的.on()和.off()API統一了將事件附加到jQuery中的文檔的所有方式-它們的鍵入時間更短!
$(elements).on( events [, selector] [, data] , handler );
$(elements).off( [ events ] [, selector] [, handler] );
提供選擇器時,.on()與.delegate()相似,因為它附加了由選擇器過濾的委托事件處理程序。當選擇器省略或為null時,調用類似于.bind()。有一種模棱兩可的情況:如果data參數是字符串,則必須提供選擇器字符串或null,以便不會將數據誤認為選擇器。傳遞對象以獲取數據,您將不必擔心特殊情況。
所有現有的事件綁定方法(及其對應的取消綁定方法)在1.7中仍然存在,但是對于已知使用1.7或更高版本的新jQuery項目,我們建議您使用.on()。(強調我的)
- 3 回答
- 0 關注
- 381 瀏覽
添加回答
舉報
0/150
提交
取消