点击事件在d3中自动触发

时间:2014-07-13 17:28:35

标签: javascript d3.js

任何人都可以向我解释为什么触发点击事件而没有任何点击实际发生?

     var svgWindow = d3.select("body")
                          .append("svg")
                          .attr("width", widthWindow)
                          .attr("height", heightWindow)
                          .attr("x", svgXWindow)
                          .attr("y", svgYWindow);

      var windowContainer=svgWindow.append("g").attr("id", "window_container");


      var userNodes=windowContainer.append("g")
                                    .attr("class", "userNode") 
                                    .attr("id","useriddata")
                                    .selectAll(".userNode")
                                    .on("click", alert('error'));

1 个答案:

答案 0 :(得分:0)

它必须位于function(){}中才能在click事件被触发时执行警告:

var userNodes=windowContainer.append("g")
                             .attr("class", "userNode") 
                             .attr("id","useriddata")
                             .selectAll(".userNode")
                             .on("click", function(){alert('error');});

一旦alert()被调用,userNodes就会被评估,(和所谓的)alert(),因此它甚至不会被点击就会触发userNodes。一旦它处于一个函数中,一旦{{1}}被调用广告就会评估该函数,然后它只在点击时执行。

相关问题