0

我正在寻找一种更好的方式来切换 Dojo Legends。不幸的是,它们不是直接的复选框,所以我让它工作的唯一方法是触发 dojo 复选框上的点击事件

目前我使用类似以下的东西:

$('.dojoxLegendText').each(function(index) {
  var lblText = $.trim($(this).text());
  //if statement here to determine if legend should be toggled
  $(this).trigger('click');
});

我的问题是在切换图例时滚动页面。这对用户来说不是很讨人喜欢。

任何人都有更好的选择或解决方案来防止滚动?

4

2 回答 2

0

它们是 dijit 复选框。尝试让他们使用

firstcheckbox=dijit.byId("dijit_form_CheckBox_0"); secondcheckbox=dijit.byId("dijit_form_CheckBox_1");

“dijit_form_CheckBox_0”表示小部件的 id。Dojo 会自动将它们显示出来,因此请尝试使用 firebug 将鼠标悬停在复选框上以查看 id。

您可以使用以下方法取消选中它们:

firstcheckbox.set("选中",false);

获取小部件的更好方法是使用 dojo 来获取图例中的小部件。看看这里:

Dojo 中有没有办法在 DOM 元素中查找所有小部件后代?

于 2013-02-12T09:53:26.807 回答
0

我制作了一个名为 toggleSeries 的函数,您可以使用它来打开和关闭图例/复选框:

function toggleSeries (legend,num) { // legend = SelectableLegend

dojo.query("*",legend.legends[num])[0].click();

dijit.findWidgets(legend.legends[num])[0]._onClick(); }

这是一个jsfiddle示例:

http://jsfiddle.net/luciancd/92Dzv/17/

有关该功能的更多信息,请查看我的最新帖子:

默认情况下在蜘蛛图中隐藏一个系列

卢西安

于 2013-02-14T00:08:03.130 回答