d3.js文本事件已注册但未触发

时间:2018-02-18 09:55:11

标签: d3.js javascript-events

我有以下输入部分,稍后将其转换为将不透明度设置为1.'点击'在圈子上工作。点击'点击'在文字上没有。

如果我替换了'文字'对于一个' rect'并在rect上设置适当的属性,然后两次点击都能正常运行。

当我检查dom树时,听众在圆圈和文本元素上都能正确显示。

有人可能会指出任何明显的错误或告诉我为什么使用' text'不和听众工作?

  var nodeEnter = node.enter().append('g')
    .attr('class', 'node')
    .attr('transform', function () {
      return 'translate(' + source.y0 + ',' + source.x0 + ')';
     })
    .style('opacity', 1e-6);

  nodeEnter.append('circle')
    .attr('r', 1e-6)
    .style('fill', function (d: any) {
    return d._children ? 'lightsteelblue' : '#fff';
  })
  .on('click', this.circle_click);

  nodeEnter.append('text')
    .attr('dx', 3.5)
    .attr('dy', 5.5)
    .text(function (d: any) { return d.data.name; })
    .style('fill-opacity', 1e-6)
    .on('click', this.text_click);

1 个答案:

答案 0 :(得分:-2)

发现由于某种原因'指针事件'没有总是在元素上设置 - 当我在更新过渡期间专门将样式设置为“可见”时,它就起作用了。知道为什么会发生这种情况会很有趣 - 我的代码或css文件中都没有设置样式。