1. 程式人生 > >談 jquery中.band() .live() .delegate() .on()的區別

談 jquery中.band() .live() .delegate() .on()的區別

bind(type,[data],fn) 為每個匹配元素的特定事件繫結事件處理函式

$("a").bind("click",function(){alert("ok");});
live(type,[data],fn) 給所有匹配的元素附加一個事件處理函式,即使這個元素是以後再新增進來的

$("a").live("click",function(){alert("ok");});
delegate(selector,[type],[data],fn)指定的元素(屬於被選元素的子元素)新增一個或多個事件處理程式,並規定當這些事件發生時執行的函式

$("#container").delegate("a","click",function(){alert("ok");})


on(events,[selector],[data],fn)在選擇元素上繫結一個或多個事件的事件處理函式

區別:

@1   .bind()是直接繫結在元素上

@2   .live()則是通過冒泡的方式來繫結到元素上的。更適合列表型別的,繫結到document DOM節點上。和.bind()的優勢是支援動態資料。

@3   .delegate()則是更精確的小範圍使用事件代理,效能優於.live()

@4   .on()則是最新的1.9版本整合了之前的三種方式的新事件繫結機制

轉:https://www.cnblogs.com/wangbenqing/p/6429957.html