我有一个包含d3.js(v5)图的Android网络视图。 最近,该图停止响应多个设备上的任何事件(拖动,单击,缩放)。我没有更新代码库,所以我想它与Android更新有关?
我将远程Webview调试与chrome devtools一起使用,但没有找到根本原因。
我使用var a = {"a":"1","b":"2"};
var values = []
for(var k in a){
values.push(a[k]);
}
来跟踪事件。缩放和拖动功能再次开始起作用,直到我使用monitorEvents
。
关于这些事件为何会突然停止工作以及对unmonitorEvents
的副作用有什么想法?
感谢您的帮助:)
PS:该网页可以在没有网络视图的情况下运行。
节点是可单击的,整个图形都可以移动或放大或缩小。
EDIT2 :找到了第一个解决方案。
经过一番搜索,我发现了https://developers.google.com/web/updates/2016/10/pointer-events:鼠标和触摸动作的新事件。 monitorEvents
对固定d3代码的所有monitorEvents
做addEventListener
。
现在,我将转储侦听器添加到root。看起来很丑。正确的举动是什么?