Я разработал собственный шаблонный виджет dijit. Я должен сделать некоторые манипуляции с DOM детьми containerNode
. Все работает нормально, за исключением случаев, когда у меня загружены два виджета, и манипулирование дочерними элементами 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
) показывает, что браузер считает, что все по отдельности, и я получаю два разных набора результатов для двух разных экземпляров.