javascript - 复选框不起作用。尝试在 flot 中动态添加/删除网格线。

标签 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.) 这个 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 .

关于javascript - 复选框不起作用。尝试在 flot 中动态添加/删除网格线。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24395120/

相关文章:

javascript - 在 Google Jsapi 调用中是否必须使用开发人员 key ?

html - 仅更改指定 id 的 css 类

javascript - 我怎样才能轻松地一起使用 Ajax、perl 和 JSON?

javascript - 如何将react组件转换为html字符串?

javascript - 如何将类和文本替换为按钮

javascript - 根据选择框中的选项显示单选按钮

javascript - 简化 Javascript,根据 URL 添加 "active"类(DRY)

javascript - 如何修复此 "Dropzone already attached"错误?

javascript - 什么会导致与 Tipsy 的焦点触发器发生冲突?

jQuery Ajax setTimeout JSON