1

如果复选框已被勾选,我只是试图调用拖动功能。我一直在尝试实现以下示例:

1

node.call(function(d) { if d3.selectAll("input").property("checked", true) {return drag } })

2

d3.selectAll("input").on("change", change);

      
    function change() {

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



       function da() {

      node.call(drag);

       }

它不显示错误,只是在检查后不拖动 - http://jsfiddle.net/gUF8x/3/

4

1 回答 1

0

最大的问题this.value是设置为复选框的值,而不是状态(例如,它不会根据复选框是否被选中而变为真或假)。相反,您应该使用this.checked

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

这将允许调用da();发生,但是你会得到一个错误,因为它是当前编写的,da()函数不在全局范围内(它当前是函数的draw()子函数),所以要实现你正在寻找的for 将需要对代码和结构进行更多修改。至少你会从这里开始使用错误......

于 2013-04-22T17:57:04.987 回答