【发布时间】: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