我一直在使用 dygraphs,并且已经让一个网页与复选框配合得很好,可以打开和关闭页面上可能无限数量的 dygraphs 的可见性。
但是,当我添加按钮以将值设置为全部打开或全部关闭时,我现在卡住了。
我找到了一个我遵循的基本示例:http ://dygraphs.com/tests/color-visibility.html ,其中包含复选框 0-3 的 ID 名称。只要我不必调用复选框的 ID,这适用于一个图,甚至适用于多个图。我让整个系统都在重复 ID 号。
但是,当我添加一个按钮来自动选中该框时,我需要唯一标识的复选框,否则它只会选中和取消选中第一组框。然后,一旦我重命名复选框 ID,原始可见性功能就不起作用。
HTML:
<input type=checkbox id=0 onClick="change(this,plotname)" checked=true > A
<input type=checkbox id=1 onClick="change(this,plotname)" checked=true > B
<input type=checkbox id=2 onClick="change(this,plotname)" checked=true > C
<input type=checkbox id=3 onClick="change(this,plotname)" checked=true > D
<input id="all_On" type="button" value="All On" onclick="checkTheBoxes([true, true, true, true],<%= chartnumber %>)">
JS代码:
function change(element,name) {
name.setVisibility(element.id, element.checked);
}
function checkTheBoxes(tfarray,section) {
for (var j = 0;tfarray.length;j++){
document.getElementById(j).checked = tfarray[j]
document.getElementById(j).onclick()
//I have been using the section input to identify plots with the renamed IDs
}
}
我相信问题在于通过更改功能时的“this”调用。当我使用 Firebug 进行探测时,如果我单击第 3 号复选框,则元素为 input#3 并且这有效。但是,如果我将 ID 重命名为 plot2box3 之类的东西,则萤火虫元素是 input#plot2box3,我相信 setVisibilty 函数不知道如何处理。
那么问题是,我如何保持“this”引用输出正确的元素,同时能够唯一地调用复选框。
谢谢!