Javascript 令人沮丧的代表团。这件事是否值得做,由他决定。关键是帮助他理解这些概念是如何工作的。如果这真的帮助他“理解这些概念是如何工作的”,那么我希望他接受你的回答,但“快/慢”在这里是主观的术语。我认为您的代码可以使用一些注释来帮助可读性,因为它是真正的TL;DR
Javascript 令人沮丧的代表团。这件事是否值得做,由他决定。关键是帮助他理解这些概念是如何工作的。如果这真的帮助他“理解这些概念是如何工作的”,那么我希望他接受你的回答,但“快/慢”在这里是主观的术语。我认为您的代码可以使用一些注释来帮助可读性,因为它是真正的TL;DR,javascript,jquery,optimization,jquery-selectors,Javascript,Jquery,Optimization,Jquery Selectors,令人沮丧的代表团。这件事是否值得做,由他决定。关键是帮助他理解这些概念是如何工作的。如果这真的帮助他“理解这些概念是如何工作的”,那么我希望他接受你的回答,但“快/慢”在这里是主观的术语。我认为您的代码可以使用一些注释来帮助可读性,因为它是真正的TL;DR示例与之前的一个微不足道的代码片段相同:)如果速度确实是一个问题,我已经发布了一个答案,可以提高委派速度,用它来交换多个委派事件处理程序。这应该足够快(“足够”也是一个主观术语):@TrueBlueAussie:问题的前提是完整的文档级授权。当
令人沮丧的代表团。这件事是否值得做,由他决定。关键是帮助他理解这些概念是如何工作的。如果这真的帮助他“理解这些概念是如何工作的”,那么我希望他接受你的回答,但“快/慢”在这里是主观的术语。我认为您的代码可以使用一些注释来帮助可读性,因为它是真正的
TL;DR
示例与之前的一个微不足道的代码片段相同:)如果速度确实是一个问题,我已经发布了一个答案,可以提高委派速度,用它来交换多个委派事件处理程序。这应该足够快(“足够”也是一个主观术语):@TrueBlueAussie:问题的前提是完整的文档级授权。当然,最好是本地化的代表团。
$(document).on('click', '.menu li.remove', function(e){ ... });
$(document).on('click', '.menu li.edit', function(e){ ... });
$(document).on('click', '.menu li.action', function(e){ ... });
$(document).on('click', '.menu li.anotherAction', function(e){ ... });
$('#sidebar').on('click', '.menu li.action', function(e){ ... });
var handlers = {
remove: function() {/*your code*/},
edit: function() {/*your code*/},
action: function() {/*your code*/},
anotherAction: function() {/*your code*/}
};
var targets = Object.keys(handlers);
document.onclick = function(e) {
e = e || window.event;
var li;
var node = e.target || e.srcElement;
var targetClass;
do {
if (!li) {
if (node.nodeName === "LI") {
li = node;
}
} else if (node.className.indexOf("menu") > -1) {
targetClass = li.className
break;
}
} while(node = node.parentNode);
if (!targetClass)
return;
for (var i = 0; i < targets.length; i++) {
if (targetClass.indexOf(targets[i]) > -1) {
handlers[targets[i]].call(li, e);
}
}
}
$('.menu').on('click', 'li.remove', function(e){ ... })
.on('click', 'li.edit', function(e){ ... })
.on('click', 'li.action', function(e){ ... })
.on('click', 'li.anotherAction', function(e){ ... });