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){ ... });