Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript d3js:如何将按钮id传递给onclick回调函数_Javascript_D3.js_Callback - Fatal编程技术网

Javascript d3js:如何将按钮id传递给onclick回调函数

Javascript d3js:如何将按钮id传递给onclick回调函数,javascript,d3.js,callback,Javascript,D3.js,Callback,我知道回调函数可以访问绑定数据及其索引,但是如何向回调函数传递额外的参数呢 这是我尝试做的一个简化版本: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <script src="https://d3js.org/d3.v4.min.js"></script> <body> <div id="viz

我知道回调函数可以访问绑定数据及其索引,但是如何向回调函数传递额外的参数呢

这是我尝试做的一个简化版本:

<!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>
本质上,我希望所有按钮都访问相同的回调函数,但该函数需要知道哪个按钮调用了它。我知道回调函数通常不会有参数,即d3.selectone.onclick,clickPrint;,但这是我试图传递一个特定于按钮的参数。我知道我在实际工作中没有任何数据绑定-如果这与我的工作有某种关联,请告诉我


谢谢。

如果您需要知道单击了什么按钮,您可以从下面的按钮中找到id,希望这就是您需要的

//设置按钮 d3.选择One.单击,单击打印; d3.选择两个。单击一次,单击打印; d3.选择三个。单击一次,单击打印; //回调函数 功能点击打印{ console.log this.id; } 一 二 三 啊,这又让我抓狂了。非常感谢。对于额外的积分,您知道我如何将实际参数传递给回调函数,即不仅仅是id?