我知道回调函数可以访问绑定数据及其索引,但是如何将其他参数传递给回调函数?
这是我想要做的简化版本:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<script src="https://d3js.org/d3.v4.min.js"></script>
<body>
<div id="viz">
<button id="one"> One </button>
<button id="two"> Two </button>
<button id="three"> Three </button>
</div>
</body>
<script>
// setup buttons
d3.select("#one").on("click", clickPrint("one"));
d3.select("#two").on("click", clickPrint("two"));
d3.select("#three").on("click", clickPrint("three"));
// callback function
function clickPrint(arg) {
console.log("You clicked on button:" + arg);
}
</script>
</html>
基本上,我希望所有按钮都可以访问相同的回调函数,但是对于该函数来说,知道哪个按钮调用了它。我知道通常回调函数不会有parens,即d3.select("#one").on("click", clickPrint);
,但这是我尝试传递一个特定于按钮的参数。我知道我没有任何数据限制(我在实际工作中做了) - 如果这有某种关联,请告诉我。
谢谢。
答案 0 :(得分:1)
如果你需要知道点击了哪个按钮,你可以从这个按钮中找到id
,希望这就是你需要的......
// setup buttons
d3.select("#one").on("click", clickPrint);
d3.select("#two").on("click", clickPrint);
d3.select("#three").on("click", clickPrint);
// callback function
function clickPrint() {
console.log( this.id );
}
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<div id="viz">
<button id="one"> One </button>
<button id="two"> Two </button>
<button id="three"> Three </button>
</div>
&#13;