jQuery 為什麼要劃分 bind 和 live ?

時間 2021-05-29 22:49:57

1樓:天翔Skyline

如果你知道事件監聽的話就知道這兩個有什麼區別了。第乙個是把事件繫結在元素上,第二個是把事件繫結在document上,通過監聽event.target來判斷是不是你所繫結的事件。

這樣有乙個好處就是在於,你可以在ajax載入節點的時候不用再載入完之後重新繫結一次,因為你的監聽事件是在document上面。如果用bind的話,那麼當ajax載入dom的時候,新過來的節點是沒有繫結事件的,你還需要重新繫結一次。

另外在jQuery現在的版本裡面,已經不推薦使用live方法了,所有的繫結事件全部統一為$.on,解綁事件統一到$.off

2樓:寸志

3樓:keelii

粗淺的認為:給a元素bind()乙個事件b後,dom又動態新增了乙個a元素,這時候bind()到前乙個a元素上的事件就出發不了。需要用到live()

4樓:李典

live()是jQuery 1.3中新增的方法。給所有當前以及將來會匹配的元素繫結乙個事件處理函式(比如click事件)。也能繫結自定義事件。重點突出 「將來」。

live()函式給所有當前以及將來(將來:可理解為用過ajax,js等插入的元素)會匹配的元素繫結乙個事件處理函式。

與bind()不同的是,live()一次只能繫結乙個事件。

5樓:田樂

6樓:Chris

效能神馬的都是浮雲 (因為 jQuery 優化得很不錯), 重點是 1.4.4 前的 live() 的不支援 stopPropagation()

jsfiddle.net/J4eUb/2/至於用哪乙個是根據應用場景來區分的, 沒有通用的規則

JMM為什麼要劃分LoadLoad,LoadStore,StoreStore,StoreLoad

Aray LoadLoad Barriers 示例 Load1 LoadLoad Load2 該屏障確保Load1資料的裝載先於Load2及其後所有裝載指令的的操作 StoreStore Barriers 示例 Store1 StoreStore Store2 該屏障確保Store1立刻重新整理資料...

對於存在結算選擇權的衍生工具,為什麼要劃分為金融資產或者金融負債,為什麼不能是權益工具?

Youngs Wang 這是一項衍生工具,衍生工具說白了就是打賭,對一項打賭的事情,你會用固定的數量的自身權益工具去結算嗎?這是不可能的。更本不滿足權益工具的定義。下文能幫你深層理解金融工具。Youngs Wang 如何區分金融負債和權益工具? 東哥 有的人怎麼胡說八道。這句話是 企業會計準則第37...

為什麼建築 architecture 的劃分類別是純藝術 fine art ?

顧曉亮 Architecture is frequently considered a fine art,especially if its aesthetic components are spotlighted in contrast to structural engineering or c...