复选框无法正常工作。尝试在flot中动态添加/删除网格线。

时间:2014-06-24 19:52:12

标签: javascript jquery html dom flot

我会添加代码然后我会解释。

相关HTML的细分:

<div id='gridButton'>
    <form>
         <input type="checkbox" id="gridCheck" value="showGrid">Show Grid
    </form>
</div>

我使用了两种不同的方法来测试复选框,但它们都没有工作。

版本1:

$('#gridCheck').on('change', function(){
    if(gridToggle = 0) {
        gridToggle = null;
    } else {
        gridToggle = 0;
    }
});

第2版:

$('#gridCheck').on('click', function(){    
   if ($(this).is(':checked')){
      gridToggle = null;
   } else {
      gridToggle = 0;
   }
});

这是gridToggle连接的内容(这是整个选项的一部分):

    xaxis: {min: -10, max: 60, tickLength: gridToggle},
    yaxis: {min: -5, max:40, tickLength: gridToggle}

所以我遇到的问题是,当单击复选框时,它不会更改网格线。如果我手动将它们放入代码中,它们将起作用。

1 个答案:

答案 0 :(得分:3)

几点想法:

1。)这if(gridToggle = 0) {错了,我认为你的意思是if(gridToggle == 0) {

2。)输入标签缺少元素关闭,应该是:

<input type="checkbox" id="gridCheck" value="showGrid" />

3。)最后(您的真正问题),您需要在更改属性后重绘图表:

$('#gridCheck').on('change', function(){        
    var gridToggle = $(this).is(':checked') ? null : 0; // on or off
    var opts = myPlot.getOptions();
    opts.xaxes[0].tickLength = gridToggle; // modify existing plot options
    opts.yaxes[0].tickLength = gridToggle;
    myPlot.setupGrid(); // re-init grid
    myPlot.draw(); // and redraw
});

这是fiddle