2

我一直在使用 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”引用输出正确的元素,同时能够唯一地调用复选框。

谢谢!

4

0 回答 0