我知道可以使用图例打开/关闭flot系列,如this页上所示。
在该示例中,更改似乎是click事件的结果。
我正在尝试在使用onchange
事件时使其工作。
如果我(添加然后再单击)按钮...
<input type="button" value="Disable USA" onclick="document.getElementById('idusa').checked = false;">
...正在禁用该复选框,但图表未重新绘制。
我试图通过两种方式解决这个问题:
plotAccordingToChoices();
添加到按钮的onclick
,然后choiceContainer.find("input").click(plotAccordingToChoices);
代码:尝试使用change
代替click
。这不起作用。有什么想法吗?
答案 0 :(得分:0)
这是一个非常棘手的问题,据我所知(我不知道那么多)从按钮更改复选框不会触发其更改事件,但由于您正在使用某个功能,因此您可以更改属性,然后触发重绘功能。我还将.click()更改为.change()只是为了效果:
从Flot代码中,我为每个元素添加了一个类,并将该类设置为具有更改事件:
choiceContainer.append('<br/><input type="checkbox" name="'
+ key+'" checked="checked" id="id' + key + '" class="legend">' +
'<label for="id' + key + '">' + val.label + '</label>');
$(".legend").change(plotAccordingToChoices);
现在为你的按钮,我让它切换到美国:
$("#clicker").click( function(){
if($("#idusa").is(":checked"))
$("#idusa").attr('checked', false);
else
$("#idusa").attr('checked',true)
plotAccordingToChoices();
});
修改强> 您可以使用.trigger('change')来触发更改事件。
$("#clicker").click( function(){
if($("#idusa").is(":checked"))
$("#idusa").attr('checked', false);
else
$("#idusa").attr('checked',true)
$("#idusa").trigger('change');
});
最后我将按钮更改为按钮:
<button id="clicker">Disable USA</button>
您可以稍微修改一下,如果需要,可以为每个复选框添加一个按钮。 我希望这适合你。