.delegate()与.on()

我在Web应用程序中使用jQuery。我一直在使用,.bind()但是我发现它有点慢,因此在阅读我所阅读的文档.on()和时.delegate()。我了解.delegate()工作原理,但不清楚两者之间的区别以及.on()在哪种情况下哪个更好。


另外我正在使用jQuery 1.6,所以我想知道是否值得通过放置类似于以下内容的条件来为jQuery 1.7准备我的脚本:


if(typeof $(selector).on == 'function'){

    /* use .on() */

}else{

    /* use .delegate() */

}

这是一个好主意(为做准备.on())还是只为寻找麻烦而已?


请帮助我清楚地了解这些方法。


HUH函数
浏览 327回答 3
3回答

jeck猫

该.on()语法是新的语法,1.7版本的用途和它的目的是替代  .bind(),.delegate()和.live()。此处更多-> http://blog.jquery.com/2011/11/03/jquery-1-7-released/新的事件API:.on()和.off()新的.on()和.off()API统一了将事件附加到jQuery中的文档的所有方式-它们的键入时间更短!  $(elements).on( events [, selector] [, data] , handler );  $(elements).off( [ events ] [, selector] [, handler] );提供选择器时,.on()与.delegate()相似,因为它附加了由选择器过滤的委托事件处理程序。当选择器省略或为null时,调用类似于.bind()。有一种模棱两可的情况:如果data参数是字符串,则必须提供选择器字符串或null,以便不会将数据误认为选择器。传递对象以获取数据,您将不必担心特殊情况。所有现有的事件绑定方法(及其对应的取消绑定方法)在1.7中仍然存在,但是对于已知使用1.7或更高版本的新jQuery项目,我们建议您使用.on()。(强调我的)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery