为了账号安全,请及时绑定邮箱和手机立即绑定

.delegate()与.on()

.delegate()与.on()

HUH函数 2019-10-19 14:51:37
我在Web应用程序中使用jQuery。我一直在使用,.bind()但是我发现它有点慢,因此在阅读我所阅读的文档.on()和时.delegate()。我了解.delegate()工作原理,但不清楚两者之间的区别以及.on()在哪种情况下哪个更好。另外我正在使用jQuery 1.6,所以我想知道是否值得通过放置类似于以下内容的条件来为jQuery 1.7准备我的脚本:if(typeof $(selector).on == 'function'){    /* use .on() */}else{    /* use .delegate() */}这是一个好主意(为做准备.on())还是只为寻找麻烦而已?请帮助我清楚地了解这些方法。
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

该.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()。(强调我的)


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 323 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信