【问题标题】:is jquery on() always better than bind() [duplicate]jquery on() 总是比 bind() 好 [重复]
【发布时间】:2013-10-14 02:25:33
【问题描述】:

我看过live()delegate()on()的帖子,了解一下这个位置。

我也明白click() 只是on() 的快捷方式,以及这两个语句是如何相同的。

$( "#clickTarget" ).click(function() {alert( "Handler for .click() called." );});
$( "#onTarget" ).on('click',function() {alert( "Handler for .on() called." );});

我的问题是使用bind() 是否比on() 有任何优势?请注意,文档声明 “从 jQuery 1.7 开始,.on() 方法是将事件处理程序附加到文档的首选方法。” 例如,如果我的元素在编写 DOM 时就存在,这似乎是有道理的。如果是这样,是否有bind() 的快捷版本,可以在点击时绑定?

$( "#bindTarget" ).bind( "click", function() {alert( "Handler for .bind() called" );});

【问题讨论】:

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

标签: javascript jquery


【解决方案1】:

来自jQuery source code

bind: function( types, data, fn ) {
    return this.on( types, null, data, fn );
},

如您所见,bind 只是调用on。没有理由使用bind。从不。

【讨论】:

  • 哇,你好快!!!
猜你喜欢
  • 2012-08-04
  • 1970-01-01
  • 2013-01-17
  • 2013-04-12
  • 2013-01-29
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
相关资源
最近更新 更多