javascript - DOJO 和 DIJIT 无法解析相同的 ID 两次?

标签 javascript dynamic dojo

我在使用 DOJO 时遇到问题,我将动态加载包含某些内容的 div,然后运行 ​​parser.parse(dom.byId("mainDiv"));与各自的要求。第一次效果很好。然而,第二次我最终遇到了一个问题,它只是显示不再激活或样式化的内容。

在第二次运行时,我所做的就是删除 div 中的所有 html,然后用基本的未解析文本替换 html,然后再次解析它。现在我猜测它必须与 dijit.registry 做一些事情,但是我无法确切地找到问题所在,因为我也尝试清除该问题但无济于事。我们将非常感谢您的帮助。

最佳答案

Dojo 跟踪它通过指定 ID 创建的对象/小部件。如果您在具有相同 id 的对象上再次运行解析器,dojo 会尝试创建第二个实例,但已经有一个实例,因此它应该在您的 js 控制台中抛出错误(请检查)。

您可以将 id 留空,然后 dojo/parse 应该为您创建一个 id。 Dojo 允许您通过类属性查找 dom 元素,这样您就可以将 div 元素传递给 parse() 函数,而无需为其提供显式 id。

另一种方法是在再次解析 div 元素之前销毁创建的小部件/对象,请查看此处:

Dojo and unregistering widgets

引自http://livedocs.dojotoolkit.org/dojo/parser#parse

"If you try to parse the same content twice, or parse content mentioning id's of existing widgets, it will cause an exception about duplicate id's"

关于javascript - DOJO 和 DIJIT 无法解析相同的 ID 两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15888832/

相关文章:

c# - 在 C# 中按名称获取和保存属性引用的最佳方法是什么

javascript - 初学者挑战 : Sum all even numbers 1-1000. 是我的基本原理错误还是我的代码错误?

dojox.grid.DataGrid自定义排序方法?

javascript - 如何在来自 Servlet 的 JSP 中打印 ArrayList 中的对象

javascript - 如何获取包含不重复项的单个数组及其值的总和。有序描述

javascript - 为什么一个简单的 <script src ="..."> </script> 不起作用?

javascript - 如何使用 JavaScript 大致计算网站的连接速度?

macos - 在 OSX 中动态更新应用程序图标

php - 动态数据库表属性(最佳实践)

javascript - 将点击事件动态更改为 dojo 按钮