【发布时间】:2010-02-23 11:43:26
【问题描述】:
我开发了一个自定义 dijit 模板小部件。我必须对containerNode 的孩子做一些DOM 操作。一切正常,除非我加载了两个小部件,并且containerNode 的子代的操作似乎会影响相同类型的所有小部件,而不仅仅是小部件的特定实例。
我想我已经把它缩小到我“卸载”我正在执行以下功能的“孩子”的这部分代码:
popPage: function() {
if (this._pagesLoaded) {
var i = this._pagesLoaded - 1;
var y = this.containerNode.children[i];
if (typeof y !== "undefined") {
this.containerNode.removeChild(y);
}
var page = this.pages.pop();
page.unsetPage(); //Internal sub object cleanup
page.destroyRecursive();
this.endPageLoaded--;
this._calcPagesLoaded(); //recalcs this._pagesLoaded
}
},
当我似乎执行此操作时,似乎孩子已从所有小部件的 DOM 中删除。它只是没有任何意义,并且在 Firebug 中手动检查事物(如dijit.byId("logScroller62").containerNode.children)表明浏览器认为一切都是独立的,我得到了两个不同实例的两组不同结果。
【问题讨论】:
标签: javascript dom widget dojo