我知道這似乎是一個常見的錯誤,我試圖實現一些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