jQuery 1.7 .on()方法,为什么有必要?

时间:2011-11-03 22:54:37

标签: jquery jquery-1.7

我不明白为什么这种方法存在....

http://api.jquery.com/on/

在我看来,你总是只做$(el).click()而不是$(el).on('click', function...

5 个答案:

答案 0 :(得分:4)

$(el).on为开发人员提供了一种统一方式来绑定任何事件类型,直接事件和委托事件的事件。它还允许您通过传递对象来同时绑定多个事件(documentation中的第二个示例)

您还可以保存一些按键,以获得它的价值。

答案 1 :(得分:2)

使用.on(),您可以同时绑定多个事件类型,因此如果您想对多个事件执行相同的操作,则不必重复代码或创建单独的函数。

答案 2 :(得分:2)

$(el).click(...)$(el).bind('click', ...)的简写。如果您将documentation for bind()documentation for on()进行比较,则会看到许多差异。

bind()文档的第一段很好地总结了这一点:

  

从jQuery 1.7开始,.on()方法是首选方法   将事件处理程序附加到文档。对于早期版本,   .bind()方法用于直接将事件处理程序附加到   元素。处理程序附加到当前选定的元素中   jQuery对象,因此这些元素必须存在于调用点   到.bind()发生。有关更灵活的事件绑定,请参阅讨论   .on()或.delegate()中的事件委托。

答案 3 :(得分:1)

我理解新.on().bind().delegate().live()中有些重复功能的合并。它既是API的合并,也是将实现组合成更统一的实现。

答案 4 :(得分:0)

在我看来它正在上演组合/替换各种其他事件绑定功能......一个功能将它们全部绑定! (LOTR geekery ftw)