Javascript 使用复选框启用调用拖动

Javascript 使用复选框启用调用拖动,javascript,d3.js,Javascript,D3.js,如果勾选了checbox,我只是尝试调用drag函数。我一直在尝试实现以下示例: 1. 2. 它不会显示错误,只是在选中后不会拖动-最大的问题是此值设置为复选框的值,而不是状态(例如,如果选中复选框,则不会变为true或false)。相反,您应该使用此选项。选中: if (this.checked === true ) da(); 这将允许调用da()将发生,但是您将得到一个错误,因为在当前编写时,da()函数不在全局范围内(它当前是draw()函数的子函数),因此要实现所需的功能,需要对代

如果勾选了checbox,我只是尝试调用drag函数。我一直在尝试实现以下示例:

1. 2.
它不会显示错误,只是在选中后不会拖动-

最大的问题是
此值设置为复选框的值,而不是状态(例如,如果选中复选框,则不会变为true或false)。相反,您应该使用
此选项。选中

if (this.checked === true )  da();

这将允许调用
da()
将发生,但是您将得到一个错误,因为在当前编写时,
da()
函数不在全局范围内(它当前是
draw()
函数的子函数),因此要实现所需的功能,需要对代码和结构进行更多修改。至少从现在开始你会有一些错误需要使用,尽管…

我在d3.js中没有太多经验,但我假设你基本上希望将所有值返回到它们的原始状态。这可能意味着将它们重置为零,也可能意味着将它们设置为先前设置的负数。谢谢您的帮助。我找到了一个解决方案:else if(this.checked==false){return node.call(dragno);};var dragno=d3.behavior.drag().origin(Object).on(“drag”,null);
d3.selectAll("input").on("change", change);

      
    function change() {

 if (this.value === true )  da();



       function da() {

      node.call(drag);

       }
if (this.checked === true )  da();