我正在寻找一种更好的方法来切换Dojo Legends。不幸的是它们不是直接的复选框,所以我让它工作的唯一方法是在dojo复选框上触发click事件
目前我使用以下内容:
$('.dojoxLegendText').each(function(index) {
var lblText = $.trim($(this).text());
//if statement here to determine if legend should be toggled
$(this).trigger('click');
});
我的问题是在传说被切换的同时滚动页面。用户不是很满意。
任何人都有更好的替代方案或解决方案来阻止滚动?
答案 0 :(得分:0)
他们是dijit复选框。尝试使用
获取它们firstcheckbox = dijit.byId( “dijit_form_CheckBox_0”); secondcheckbox = dijit.byId( “dijit_form_CheckBox_1”);
“dijit_form_CheckBox_0”表示小部件的ID。道场给了他们 自动完成,所以尝试将鼠标悬停在使用firebug的复选框上进行查看 在id。
您可以使用以下方式取消选中:
firstcheckbox.set( “选中”,假);
获取小部件的更好方法是使用dojo来获取图例中的小部件。 看看这里:
Is there a way in Dojo to find all widget descendants in a DOM element?
答案 1 :(得分: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/
有关该功能的更多信息,请查看我的帖子:
Hiding a series by default in a spider plot
卢西恩