我正在为一个站点重构一个 JavaScript 命名空间。命名空间将 jQuery 用于选择器和事件。这是一个例子。
MyNamespace = {
eventElements : {
headerSectionA : $("h1.section-a");
headerSectionB : $("h1.section-b");
}
sectionA : function() {
// do stuff for section A here, such as
MyNamespace.eventElements.headerSectionA.click(function(){
// behavior A
});
}
sectionB : function() {
// do stuff for section B here, such as
MyNamespace.eventElements.headerSectionB.click(function(){
// behavior B
});
}
}
这是一个提炼的代码示例。想象一下许多 eventElement,以及许多使用这些 eventElement 子集的站点部分。
我的问题是 jQuery 是在每次加载此脚本时遍历所有 eventElements 的 DOM,还是仅在调用使用该 eventElement 的函数时。
我想避免性能损失,但我不确定 jQuery 是在声明 eventElement 属性时遍历 DOM,还是仅在将事件附加到 eventElement 时遍历 DOM。
如果使用上述方法存在性能损失,那么我将在命名空间内分支,仅在使用这些 eventElement 的部分的上下文中声明 eventElement。