将jQuery事件绑定到元素的最佳方法是什么?

时间:2011-12-18 02:19:55

标签: jquery events dom javascript-events

我目前正在开发一个拥有成千上万行jQuery代码的网站,特别是有很多点击事件,我想知道是否有一个更具有性能意识的最佳实践,用于绑定点击事件或对项目的任何事件。

当然,在各种链接和项目上有30多个点击事件无法在注册时获得良好的性能。新的jQuery 1.7" on"函数正在被使用,或许应该将事件绑定到body元素或其他东西,然后检查将获取项目被点击然后从那里工作?或者它是一个非问题,绑定很多事件并不是现代浏览器或性能的问题?

2 个答案:

答案 0 :(得分:5)

您应该将元素绑定到包含所有单击元素的最低dom元素。

因此,如果有一个名为foo的div包含每个元素,那么你会说:

$("#foo").on("click", "yourselector", function(){
});

如果您的元素分布在您网页的每一寸,那么您就会听到最顶层的信息:

$(document).on("click", "yourselector", function(){
});

如果我正确理解你的问题,我真的希望以前的开发人员不会做这样的事情:

$("#someButtonId").on("click", function(){
    //this defeats the whole purpose of on!!!
});

答案 1 :(得分:1)

您可以在元素上多次绑定同一事件,但如果您在同一个链接上有多达30个点击事件,则应该采用不同的方式。在单个事件处理程序中放置您想要执行的所有不同操作的代码,而不是自己绑定每个小事。