我正在使用 d3 svg AngularJS

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

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

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

function func1() {
    isMouseUp = true;
}

如您所见,isMouseUpmyFunction()的局部变量。
我必须将其传递给func1()。我该怎么办?

附言我无法将isMouseUp设置为全局。另外,我不能将func1()本地化为myFunction()

最佳答案

您可以通过将对func1的调用包装在另一个函数中来实现:

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

function func1(isMouseUp) {
   isMouseUp = true;
}

演示here

07-24 18:18