dojo解决这个问题Tried to register widget with id=="myid" but that id is already registered
2017-05-04 10:19
656 查看
在dojo中,除了沿用Dom结点, dojo 还自定义了一类结点用“dojoType" 进行标识。
dojo 称这些结点为widget。 当检测到HTMl文档中某个标签定义了dojoType 属性之后,dojo会调用dojo包中相应的 js 及 css 文件对这个结点进行渲染。 从而这个结点元素就会相应地显示出具有dojo特色的样式及功能。
如此说来, dom.byId 跟 dojo.byId 获取到的就是普通的HTMl文档结构树中的某个结点元素,以下简称dom结点,。
而 registry.byId 获取到的是一个dojo的widget,以下简称widget结点。
它们的区别之一是 innerHTML, tagName 等方法只对用 dom结点生效。
这样在程序中有时候注册ID的时候,我们注册的widget,在第二次重复使用的时候,会出现如下错误:
Tried to register widget with id=="myid" but that id is already registered
遇到这个问题,主要提供如下三种解决办法:
1.刷新页面,从头再来。(这个可以解决)
2.心打开一个页面。(没试过)
3.既然提示id is already registered,已经被注册了,那我们就先把注册的destory,然后再创建一个相同ID的容器,这种解决办法最常用。
使用:
registry.byId("myTableNode").destroy(); $("#bot").append("<div id='myTableNode'></div>"); //bot是上一个节点id,append意思是添加在之后,当然按你的需求来,before,after都可以,这是jquery的东西。
这段代码添加在调用代码之前,解决问题。
写的安全一点,应该这样:
if(registry.byId("myTableNode")){
dojo 称这些结点为widget。 当检测到HTMl文档中某个标签定义了dojoType 属性之后,dojo会调用dojo包中相应的 js 及 css 文件对这个结点进行渲染。 从而这个结点元素就会相应地显示出具有dojo特色的样式及功能。
如此说来, dom.byId 跟 dojo.byId 获取到的就是普通的HTMl文档结构树中的某个结点元素,以下简称dom结点,。
而 registry.byId 获取到的是一个dojo的widget,以下简称widget结点。
它们的区别之一是 innerHTML, tagName 等方法只对用 dom结点生效。
这样在程序中有时候注册ID的时候,我们注册的widget,在第二次重复使用的时候,会出现如下错误:
Tried to register widget with id=="myid" but that id is already registered
遇到这个问题,主要提供如下三种解决办法:
1.刷新页面,从头再来。(这个可以解决)
2.心打开一个页面。(没试过)
3.既然提示id is already registered,已经被注册了,那我们就先把注册的destory,然后再创建一个相同ID的容器,这种解决办法最常用。
使用:
registry.byId("myTableNode").destroy(); $("#bot").append("<div id='myTableNode'></div>"); //bot是上一个节点id,append意思是添加在之后,当然按你的需求来,before,after都可以,这是jquery的东西。
这段代码添加在调用代码之前,解决问题。
写的安全一点,应该这样:
if(registry.byId("myTableNode")){
registry.byId("myTableNode").destroy(); $("#bot").append("<div id='myTableNode'></div>"); //bot是上一个节点id,append意思是添加在之后,当然按你的需求来,before,after都可以,这是jquery的东西。}
相关文章推荐
- ERROR:Tried to register widget id ==basemapGalleryDiv but that id is already registered解决办法
- 问题解决: Attribute value request.getParameter("id") is quoted with " which must be escaped when used wi
- 问题解决: Attribute value request.getParameter("id") is quoted with " which must be escaped when used within the value
- Hibernate 级联保存时 偶尔会出现 "id to load is required for loading" 问题的解决办法
- TabHost requires a TabWidget with id "android:id/tabs" 报错解决办法
- Attribute value is quoted with " which must be escaped when used within the value 问题解决
- Android工程gen already exists but is not a source folder. Convert to a source folder or rename it问题的解决
- 运行yum出现"Thissystem is not registered with RHN”的解决方法
- 解决安装vmware-tools出现的“The path "" is not a valid path to the 3.2.0-4-amd64 kernel headers”问题
- "tabhost requires a tabwidget with id..."问题解决
- An App ID with identifier "xxxx.xxx.xxx" is not avalible 解决方法
- centos解决The path "" is not a valid path to the 3.2.0-4-amd64 kernel headers.问题
- lftp下载文件无法覆盖,提示" file already existst and xfer:clobber is unset" 问题解决
- Attribute value is quoted with " which must be escaped when used within the value 问题解决
- 解决Dojo中id is already registry的问题
- 解决"There is already an open DataReader associated with this Command which must be closed first."
- 问题解决: Attribute value request.getParameter("id") is quoted with " which must be escaped when used wi
- "Firefox is already running but is not responding" error message - How to fix it
- 解决#1289 - The \'InnoDB\' feature is disabled; you need MySQL built with \'InnoDB\' to have it working的问题
- 解决:[Android UI界面] 创建TabHost XML图形视图一直出错看不到内容?TabHost requires a TabWidget with id "android:id/tabs".