如何在d3中将变量传递给事件侦听器方法

RAS*_*RAS 2 javascript svg d3.js angularjs

我正在使用d3,svgAngularJS.

我已经编写了一些代码来mouseup使用d3 处理svg元素上的事件.代码如下:

<svg>
    <!-- some other code-->
</svg>

function myFunction() {
    var isMouseUp = false;
    d3.select("svg").on("mouseup", func1);
}

function func1() {
    isMouseUp = true;
}
Run Code Online (Sandbox Code Playgroud)

如您所见,isMouseUp是一个局部变量myFunction().我必须把它传递给func1().我怎么能这样做?

PS我无法做到isMouseUp全球化.我也不能让func1()当地人myFunction().

Lar*_*off 5

您可以通过将调用包装到func1另一个函数中来执行此操作:

function myFunction() {
   var isMouseUp = false;
   d3.select("svg").on("mouseup", function() { func1(isMouseUp); });
}

function func1(isMouseUp) {
   isMouseUp = true;
}
Run Code Online (Sandbox Code Playgroud)

在这里演示.