談 jquery中.band() .live() .delegate() .on()的區別
阿新 • • 發佈:2018-12-04
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版本整合了之前的三種方式的新事件繫結機制