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

Dwa*_*ton 5 jquery events dom javascript-events

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

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

Ada*_*kis 5

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

所以,如果有一个被称为foo包含每个元素的div ,你会说:

$("#foo").on("click", "yourselector", function(){
});
Run Code Online (Sandbox Code Playgroud)

如果您的元素分布在页面的每一寸,那么您就会在最顶层收听:

$(document).on("click", "yourselector", function(){
});
Run Code Online (Sandbox Code Playgroud)

如果我正确地理解你的问题,我真的希望以前的开发人员没有这样做:

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

  • 我也是.但是关于.click()的好的暗示点也是如此; 当绑定一个自我倾听者时,它并没有真正有所作为; 我只是意味着有时候绑定一个自我监听者是好的.AFAIK` .click()`是`.on()`的别名,带有你提供的语法,所以除了'翻译'别名之外,对于一个而言没有任何性能优势. (2认同)