2
我有這一點的代碼。它用於在select元素更改後更新表單。 onChange進行「ajax」調用,並且這一部分代碼負責響應。dojo.parser.parse並不總是返回
第一次一切按預期工作。但是,它的dojo.parser.parse無法返回大約50%的時間。
起初看起來是這樣的:
var targetNode = dojo.byId(node);
targetNode.innerHTML = data;
dojo.parser.parse(targetNode);
然後我讀一些關於現有的對象。所以我認爲,也許摧毀它們會有所幫助:
if(dojo.byId(node)) dojo.destroy(node);
dojo.create('div', { id: node }, afternode, 'after');
var targetNode = dojo.byId(node);
targetNode.innerHTML = data;
dojo.parser.parse(targetNode);
這沒有任何幫助。 h3ll正在發生什麼?有時它解析一些元素。這是一個與dojo.parser有關的已知問題嗎?
所以我想我會需要保留解析的dijits列表以後在全局數組中摧毀? – 2010-07-13 05:12:17
不一定在全球範圍內,選擇適合您的範圍。您還可以使用'dijit.findWidgets'來查找DOM節點中的dijits並銷燬它們。例如,'var dijits = dijit.findWidgets(targetNode); //破壞dijits' – 2010-07-13 06:25:49
男人,太棒了!謝謝你的幫助!我對道場一無所知。我以爲我可以做一個node.empty或者node.destroyRecursive。但它沒有像我預期的那樣工作。那是因爲節點在內存中註冊爲dojo本身意識到的dojo對象類型嗎?那麼,node.empty就會擺脫DOM中的節點,而不是內存中的dojo對象? – 2010-07-13 12:36:00