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