2011-05-11 3 views

ответ

7

Попытка уничтожить виджет перед созданием нового:

var stackedAreaLegend = dijit.byId('legend1'); 
if (stackedAreaLegend) { 
    stackedAreaLegend.destroyRecursive(true); 
} 

stackedAreaLegend = new dojox.charting.widget.SelectableLegend({ 
    chart: chart1 
    }, "legend1"); 

stackedAreaLegend.refresh(); 
1

Немного странно, но это видно из примера того, что это должно произойти при onLoad, а не при полной загрузке DOM. Попробуйте это в голову разделе вашего HTML:

dojo.addOnLoad(function(){ 
    var stackedAreaLegend = dojox.charting.widget.SelectableLegend({chart: chart},"legend1"); 
    stackedAreaLegend.refresh(); 
}); 

Источник: http://bugs.dojotoolkit.org/browser/dojox/trunk/charting/tests/test_selectableLegend.html?rev=23507

+0

спасибо. У меня есть dojo.addOnLoad (makeObjects); где makeObjects сделал диаграмму и обновление. моя проблема в том, что единственное, что действительно обновляется, - это подсказка. Обновленная диаграмма - это нить правильного div, и легенда исчезает –

1

я тоже получил тот же вопрос, что это помогло мне

var gridRegister = registry.byId('grid'); if (gridRegister) { gridRegister.destroyRecursive(true); }

0

Вы также можете попробовать: -

Aftter addSeries вы можете написать: -

var legend = new dojox.charting.widget.Legend({ chart: chart, horizontal: false }, chartID); 

И при обновлении, что после UpdatinSeries() вы можете написать:

dijit.byId(chartID + "_Legend").refresh(); 

Для использования цифры вы должны включать в себя:

dojo.require("dijit.registry"); 

Надеюсь, поможет!

0

Чтобы избавиться от него, вы должны настроить додзё загрузчик в заголовке страницы с parseOnLoad: истинный параметр:

<script src="//yandex.st/dojo/1.9.1/dojo/dojo.js" data-dojo-config="isDebug: false, async: true, parseOnLoad: true"></script> 
Смежные вопросы