我知道这似乎是一个常见的错误,我试图实现一些jquery或Dojo代码来解决这个问题,但目前为止没有任何帮助 - 我一直得到相同的错误:已经注册了Widget与ID ...dojo:小部件已经注册错误
这里是我的代码:
$("div").remove("#div_temperature_legend"); //jquery
dojo.create("div", { id: "div_temperature_legend", innerHTML: "<p></p>" }, "legendPanel");
var legend = new esri.dijit.Legend({
map: map,
layerInfos: [{ layer: layer, title: "Temperature" }],
}, "div_temperature_legend");
legend.startup();
上面的代码是在点击一个按钮功能和功能本身就是一个大的道场require()
功能的一部分;并且第一次工作。 jQuery行似乎删除,因为传说不会在新创建的div_temperature_legend
图层中重复。
无论如何,我已经尝试过dojo的destroy()
函数,但我仍然得到相同的错误。我想不知何故,我需要register
这个div,然后摧毁它。但是如何?哪里?在我的代码的上下文中?
理想情况下,代码应检测小部件是否存在,并且不会创建另一个图例。
谢谢。
jquery代码删除'div',但小部件的引用(即esri.dijit.Legent在注册表中仍然可用。要销毁该小部件,这会删除注册表中的引用,您需要执行类似这个'legend.destroy()'在创建一个'new esri.dijit.Legend'之前。 – frank