亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery的.bind()與.on()

jQuery的.bind()與.on()

慕沐林林 2019-08-16 16:32:54
jQuery的.bind()與.on()我找到了兩篇關于新功能的精彩文章.on():jquery4u.com,elijahmanor.com。有沒有什么方法.bind()可以使用更好的.on()?例如,我有一個示例代碼如下所示:$("#container").click( function( e ) {} )你可以注意到我只有一個項目由選擇器檢索,在我的情況下,當我的頁面被加載時,<div>命名#container已經存在; 沒有動態添加。重要的是要提到我使用最新版本的jQuery:1.7.2。對于該樣本,即使我不使用該功能提供的其他功能,也應該.on()使用它代替?.bind().on()
查看完整描述

3 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

在內部,.bind直接映射到.on當前版本的jQuery。(同樣適用.live。)因此,如果您使用的話,會有一個很小但實際上微不足道的性能影響.bind

但是,.bind可以隨時從將來的版本中刪除。沒有理由繼續使用,.bind而且每個理由都更喜歡.on。


查看完整回答
反對 回復 2019-08-16
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

直接的方法,.delegate是優秀的API,.on并沒有打算棄用它們。

直接方法更受歡迎,因為您的代碼將不那么串聯。錯誤輸入事件名稱而不是靜默錯誤時,您將立即收到錯誤消息。在我看來,它也更容易讀寫clickon("click"

由于參數的順序,.delegate它優于.on

$(elem).delegate( ".selector", {
    click: function() {
    },
    mousemove: function() {
    },
    mouseup: function() {
    },
    mousedown: function() {
    }});

你知道它被委派了,因為它說代表。您還可以立即看到選擇器。

有了.on它甚至不能立即明確它是否被委派,你必須看看選擇器的結尾:

$(elem).on({
    click: function() {
    },
    mousemove: function() {
    },
    mouseup: function() {
    },
    mousedown: function() {
    }}, "selector" );

現在,命名.bind真的很糟糕,而且面值更差.on。但是.delegate不能做非委托事件,并且有些事件沒有直接方法,因此在極少數情況下可以使用它,但這只是因為你想在委托事件和非委托事件之間進行清晰的分離。


查看完整回答
反對 回復 2019-08-16
  • 3 回答
  • 0 關注
  • 510 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號