JQuery .on()方法如何像.bind(),。live()和.delegate()方法一样工作?

时间:2014-01-04 11:17:05

标签: jquery

我是JQuery的新手并且正在学习它。我发现可以使用JQuery .on()方法代替.bind().live().delegate()方法。我想知道它如何像所有三种方法一样起作用,这样做的优点/缺点是什么?

3 个答案:

答案 0 :(得分:1)

见下面的例子

// Bind
$( "#members li a" ).on( "click", function( e ) {} );
$( "#members li a" ).bind( "click", function( e ) {} );

// Live
$( document ).on( "click", "#members li a", function( e ) {} );
$( "#members li a" ).live( "click", function( e ) {} );

// Delegate
$( "#members" ).on( "click", "li a", function( e ) {} );
$( "#members" ).delegate( "li a", "click", function( e ) {} );

供参考

http://www.elijahmanor.com/differences-between-jquery-bind-vs-live-vs-delegate-vs-on/

答案 1 :(得分:0)

.on()方法将事件处理程序附加到jQuery对象中当前选定的元素集。从jQuery 1.7开始,.on()方法提供了附加事件处理程序所需的所有功能。有关从旧的jQuery事件方法转换的帮助,请参阅.bind(),. delegate()和.live()。 (引自jQuery .on page。)

答案 2 :(得分:-1)

主要优点是on()在动态元素中工作(而不是live())。

了解详情:http://api.jquery.com/on/