[英]Efficient way of binding events to element in jQuery
我的页面中有一个锚元素
<a href="..." id="page">Click</a>
我知道在jQuery中,我们可以通过多种方式将事件绑定到元素(如bind,live,delegate,on)。
仅供参考:
http://blog.tivix.com/2012/06/29/jquery-event-binding-methods/
当前使用jquery1.8.3.min.js 。 我想知道哪种是jQuery中的标准高效事件注册模型?
目前,我正在这样做:
$("#page").click(function(){
................................
});
我可以像下面的代码那样更改绑定:
$("#page").bind("click",clickFunc);
function clickFunc()
{
..........
}
哪一种是在jQuery 1.8中注册事件的最佳实践?
.on
是标准方法:
$("#page").on("click", function() {
.......
});
如果p
元素是动态生成的,则必须执行以下操作:
$(document).on("click", "#page", function() {
.......
});
实际上,在jQuery 1.7之后, on
是绑定事件而不是bind
的首选方法。 所以,我更喜欢on
API。
接着:
click(function(){})
只是...的捷径
on('click',function(){})
在内部,他们实际上是相同的-当on
一个参数是event, handler
,但on
更一般的,因为它可以做的不仅仅是简单onClick
(例如:事件代表团),请参阅: 链接
所以我建议on
最好的 方法是人们可以理解所写内容和有效方法。
明智的 方法是使用建议的用法,在这种情况下,使用.on()方法:
.on()方法将事件处理程序附加到jQuery对象中当前选定的元素集。 从jQuery 1.7开始,.on()方法提供了附加事件处理程序所需的所有功能。 有关从较旧的jQuery事件方法转换的帮助,请参见.bind()、. delegate()和.live()。 要删除与.on()绑定的事件,请参见.off()。 要附加仅运行一次然后删除的事件,请参见.one()
如果您需要委托给动态生成的事件/ s的元素或不是如何做 方式依赖。
$('.child').on( 'click', function() { /* ... */ });
$('#parent').on( 'click', ".dyn-gen-child", function() { /* ... */ });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.