需要销毁dijit DropDownMenu,得到错误

时间:2014-03-07 15:20:13

标签: javascript dojo

我有一个程序化的dijit / DropDownMenu,它在初始加载时工作正常。每次客户进入新的一年,我都需要重新加载菜单。如果我正确理解了dijit文档,那么这里的顶级IF语句应该完成破坏旧菜单及其后代的工作,所有这些都位于带有id="clientDropdowns"的DIV中。相反,我得到了:

  

错误:对象不支持属性或方法'_subnodeCssMouseEvent'

当我将鼠标光标放在所谓的新菜单上时。由于该错误,我无法打开它。任何想法可能是这里的问题或可能的解决方法?非常感谢。

if (dijit.byId('clientDropdowns')) {
  dijit.byId('clientDropdowns').destroyRecursive(true);
} 

mymenu = new dijit.DropDownMenu({}, "clientDropdowns");
submenu = new dijit.DropDownMenu({});
popumenuitem = new dijit.PopupMenuItem({ label: "Select  Program", popup: submenu });

...

mymenu.addChild(popumenuitem);  
mymenu.startup();

1 个答案:

答案 0 :(得分:0)

找到解决方法 - 通过dojo.empty()补充功能

if (dijit.byId('clientDropdown')) { 
dijit.byId('clientDropdown').destroyRecursive(true); 
dojo.empty('clientDropdown'); 
}