我正在开发一个单页应用程序,并且相当多的 DOM 节点构造函数返回对他们创建的对象的引用。这是我的意思的一个例子:
if (!document.getElementById('playlistHeader')) {
appView.buildKit.playlist.headerWrap();
}
// construct element
var secondaryBtnsWrap = document.createElement("div");
secondaryBtnsWrap.id = "playlistSecondaryBtnWrap";
secondaryBtnsWrap.className = "clearright right";
// attach it
document.getElementById('playlistHeader').appendChild(secondaryBtnsWrap);
// return reference to dom node
return secondaryBtnsWrap;
我认为在视图之间进行更改时销毁和重新创建节点是多余的,因此我开始努力通过为它们提供处理擦除的自定义函数来擦除某些节点(站点的子部分)的内容。
// build wipe function
secondaryBtnsWrap.wipe = function(){
// do custom wiping here
}
这个想法是“重置”部分 UI 并重建视图之间的差异。例如,如果有一个我们无论如何都需要的按钮,那么擦除功能不会删除它。这样就消除了创建相同元素的额外工作量。
在某些情况下,获取对节点的引用并触发附加的自定义函数要容易得多,但我想知道它是否真的是一个好主意,或者它是否只是一个好主意(但不是)。
TL;DR 版本
给 DOM 节点 Javascript 函数是个好主意吗?