Javascript (D3)将“mousedown”事件分派到具有拖动行为的选择中会抛出错误

Javascript (D3)将“mousedown”事件分派到具有拖动行为的选择中会抛出错误,javascript,d3.js,Javascript,D3.js,Title几乎说明了一切,试图将mousedown事件分派到设置了拖动行为的选择时抛出TypeError:无法读取未定义的属性“document”,示例在代码段中 我正在考虑一些解决方法,因为我必须将mousedown传递给我在鼠标光标处添加的元素,以便在不按两次鼠标按钮的情况下拖动它。非常感谢您的任何意见 d3.选择“可拖动”。调用d3.拖动。在“拖动”上,调用函数{ d3.选择this.style'left',d3.event.x+'px'; d3.选择this.style'top',d3

Title几乎说明了一切,试图将mousedown事件分派到设置了拖动行为的选择时抛出TypeError:无法读取未定义的属性“document”,示例在代码段中

我正在考虑一些解决方法,因为我必须将mousedown传递给我在鼠标光标处添加的元素,以便在不按两次鼠标按钮的情况下拖动它。非常感谢您的任何意见

d3.选择“可拖动”。调用d3.拖动。在“拖动”上,调用函数{ d3.选择this.style'left',d3.event.x+'px'; d3.选择this.style'top',d3.event.y+'px'; } d3.选择“可拖动”。发送“鼠标向下”; 可排水{ 位置:绝对位置; 左:0; 排名:0; 背景:红色; 宽度:50px; 高度:50px; } 尝试添加

.在“开始”功能上{ dispatch.callmousedown,这个; };

拖动函数并在

var dispatch = d3.dispatch('mousedown');
dispatch.on('mousedown', function(){ });

结果表明,我对作业使用了错误的工具,因为selection.dispatch用于调度自定义事件。要分派鼠标事件,我必须使用.dispatchEventevent方法和MouseeEvent。

不幸的是,我仍然得到相同的错误。根据调试器,在nodrag.js的第5行抛出错误,如果由鼠标触发,它将在视图变量中获取窗口对象,但从dispatch触发时,该对象丢失。