D3.js d3.event.shiftKey使用力导向布局导致碰撞

D3.js d3.event.shiftKey使用力导向布局导致碰撞,d3.js,force-layout,D3.js,Force Layout,我正在尝试在力导向布局中创建Shift+单击动作,并将以下代码应用于节点形状: .on("click",function(){ if(d3.event.shiftKey){ //do something } }); 该代码通常能够正常工作,但偶尔会使浏览器崩溃(Chrome和Safari都会崩溃)。崩溃似乎发生在以下顺序之后: 在节点外的任意位置单击并拖动光标(以便显示文本光标) 按住shift键,同时按住节点外部的光标(仍显示

我正在尝试在力导向布局中创建Shift+单击动作,并将以下代码应用于节点形状:

.on("click",function(){
        if(d3.event.shiftKey){
                //do something
        }
});
该代码通常能够正常工作,但偶尔会使浏览器崩溃(Chrome和Safari都会崩溃)。崩溃似乎发生在以下顺序之后:

  • 在节点外的任意位置单击并拖动光标(以便显示文本光标)
  • 按住shift键,同时按住节点外部的光标(仍显示文本光标)
  • 单击节点
更新:似乎此崩溃不是我的代码独有的。通过执行以下操作,我可以使浏览器在任何强制导向布局上崩溃:按住shift键的同时,单击空白,单击节点。

也许某些内置的轮班功能正在阻碍D3的发展?例如,alt键可以很好地处理我上面的代码


谢谢

我们遇到了类似的情况,这似乎是一个Chrome bug:

webkit中的默认行为可能是导致崩溃的机制,在webkit中,按住shift键并单击会选择当前光标位置之前的所有文本


我们还没有花时间去追踪d3中的细节,但正如bug报告所表明的,现在可以通过对任何以前关注的元素进行“模糊”调用来绕过它(参见bug报告)

你能发一把小提琴或一把bl.ocks吗?这听起来像个虫子。你检查过相应的bug跟踪程序了吗?从这个现有的fiddle()中,我发现这个问题并不是我的Shift+Click事件独有的-它似乎发生在所有强制导向的布局中。在以下过程中按住shift键:单击空白,单击节点-浏览器崩溃。