d3强制有向图不要选择文本

时间:2014-11-23 14:04:14

标签: javascript d3.js

在强制有向图中关闭拖动行为时,有没有办法停止选择文字?

使用以下行关闭拖动行为:

svg.selectAll('g.gnode')
.on('mousedown.drag', null);

指针仍然是指针,而不是光标(根据this question的答案)。但拖动仍会最终更改指向光标的指针并开始选择文本。有没有办法避免这种情况,因此在拖动时没有选择文本?

Here's a link to the fiddle.

2 个答案:

答案 0 :(得分:2)

禁用整个groupnode上的指针事件。所以而不是:

text {
    pointer-events: none;
}

使用:

.gnode {
    pointer-events: none;
}

答案 1 :(得分:0)

使用this question的答案似乎可以解决问题。这需要将以下定义添加到css文件中:

.noselect {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

noselect类添加到gnodes:

  var gnodes = svg.selectAll('g.gnode')
  .data(graph.nodes)
  .enter()
  .append('g')
  .classed('gnode', true)
  .classed('noselect', true)
  .call(force.drag);