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