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

时间:2014-01-17 12:12:30

标签: javascript angularjs svg d3.js

我正在使用 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()。我怎么能这样做?

P.S。我不能让isMouseUp全球化。另外,我无法将func1()置于myFunction()的本地。

1 个答案:

答案 0 :(得分:5)

您可以通过在另一个函数中包含对func1的调用来执行此操作:

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

function func1(isMouseUp) {
   isMouseUp = true;
}

演示here