仅在“窗口”上捕获D3 SVG元素的事件

时间:2016-07-07 09:42:41

标签: javascript d3.js svg dom-events

Demo page

D3版本4.0 prevents some events在调用d3.zoom()时冒泡,所以如果我想在SVG元素本身上capture a mouseup event,则会产生问题。
事件监听器被“阻止”,因此例如下面的代码不起作用:

document.querySelector('svg').addEventListener("mouseup", function(e){
    alert(1)
}, true);

即使SVG位于另一个元素内,事件捕获也不会对该元素起作用。甚至不在“document.body”上 应用于window对象时才能正常工作:

window.addEventListener("mouseup", function(e){
    alert( 'TYPE: '+e.type + '\nTARGET: '+e.target )
}, true);

为什么捕获仅适用于window对象?

0 个答案:

没有答案