繁体   English   中英

将事件绑定到jQuery中元素的有效方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM