Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 具有多个传递参数的事件处理程序的多个元素;d3.js;简化代码_Javascript_Jquery_Html_D3.js_Event Handling - Fatal编程技术网

Javascript 具有多个传递参数的事件处理程序的多个元素;d3.js;简化代码

Javascript 具有多个传递参数的事件处理程序的多个元素;d3.js;简化代码,javascript,jquery,html,d3.js,event-handling,Javascript,Jquery,Html,D3.js,Event Handling,如何动态生成这些事件处理程序?我希望将其作为一条语句,在element.length上循环 d3.select("#wordcloud_0_im").on("click", function(d,i) { var x =1; wordclouds(keyfile,start=(x-1)*wordcount,stop=x*wordcount); }) d3.select("#wordcloud_1_im").on("click", f

如何动态生成这些事件处理程序?我希望将其作为一条语句,在element.length上循环

    d3.select("#wordcloud_0_im").on("click", function(d,i)
    {
        var x =1;
        wordclouds(keyfile,start=(x-1)*wordcount,stop=x*wordcount);
    })
    d3.select("#wordcloud_1_im").on("click", function(d,i)
    {
        var x =2;
        wordclouds(keyfile,start=(x-1)*wordcount,stop=x*wordcount);
    })
    d3.select("#wordcloud_2_im").on("click", function(d,i)
   {
        var x =3;
        wordclouds(keyfile,start=(x-1)*wordcount,stop=x*wordcount);
    })
我不知道该怎么做。谢谢。

解决方案:

   function handleElement(i) {
        document.getElementById('wordcloud_' + i + '_im').onclick=function(d,e) {
            wordcount = 40;
            x=i;
            console.log("x :" + x);
            wordclouds(keyfile,start=(x-1)*wordcount,stop=x*wordcount);

        };
    }

     for(i=1; i<35; i++) 
        handleElement(i);
函数句柄元素(一){
document.getElementById('wordcloud\'+i+'\'im')。onclick=function(d,e){
字数=40;
x=i;
控制台日志(“x:+x”);
wordclouds(关键字文件,开始=(x-1)*字数,停止=x*字数);
};
}
对于(i=1;i