小编Ben*_*Ben的帖子

事件监听器如何/何时在d3.js中附加?

我正在尝试制作各种SVG编辑器.长话短说,我需要将鼠标事件附加到<g>给定SVG内特定深度的元素.由于各种原因,我无法提前知道身份证.SVG非常庞大,即使不是数千个元素也会有数百个.

d3.selectAll("svg > g > g > g").select("g").on("mouseover", function() {
    console.log("mouseover");
  }).on("mouseout", function() {
    console.log("mouseout");          
  }).on("click", function() {
    console.log("clicked");
  });
Run Code Online (Sandbox Code Playgroud)

此代码有效,但它需要很长时间才能开始.假设我有十个这样的元素将匹配特定的选择.似乎在页面加载后的每一秒中,另外一个实际上获得了附加的鼠标事件.我想知道每次d3附加一个事件时我是否可以打印一个控制台事件,或者我怎么知道d3是否完成了附加所需的一切.

基本上这个JSFiddle需要更快地加载鼠标事件.如果等待几秒钟,您会看到越来越多的盒子在工作.

javascript svg dom-events d3.js

5
推荐指数
2
解决办法
1556
查看次数

标签 统计

d3.js ×1

dom-events ×1

javascript ×1

svg ×1