我正在阅读我的同事的代码,我想知道是否可以提高性能。 对于任何按钮事件有这样的代码:jQuery - 元素检测的性能
一个)
$("body").on("click", ".aButtonName", function() { ....});
$("body").on("click", ".aButtonName", function() { ....});
$("body").on("click", ".aButtonName", function() { ....});
....
$("body").on("click", ".aButtonName", function() { ....});
b)中难道是更快地分析每个目标事件,当点击体后:
$(document.body).on('click', function(e){
var trg = $(e.target).closest('button');
if(!trg || !trg.attr('class'))
return;
if (trg.attr('class').indexOf('my_button') > -1) {
....
没有....因为在这种情况下,在身体上的选择有任何点击进行评估,而不是....你需要针对最不常见的元素在事件委托的情况下绑定处理程序 –
这会在功能处理更多按钮的情况下提高性能,否则就像事件直接附加到元素一样。 –
使用'$(document.body)'而不是$(“body”)'会稍微改善。更好的是,将body保存为var'var $ body = $(document.body);'。 – pstenstrm