0
我使用模板系统返回由d3代码生成的SVG代码。 (有关信息,请参阅d3 issue如何执行此操作)节点上的d3事件处理程序不在HTML DOM中
一切正常,但使用d3的on
方法设置的事件侦听器除外。它们不会被添加到DOM树中。
下面是一个不起作用的简单代码示例。如果d3直接修改现有的DOM树,则一切正常(取消注释行3而不是1和2)。
任何想法要改变这个工作?
svg = d3.select(document.createElement('div'));
svg
//d3.select('body') // if you use this line INSTEAD of the first two, everything works as expected
.append("div")
.append("div")
.text('Text')
.on('mouseover', function() { alert('Test'); });
//alert(svg.node().innerHTML);
$("body").html(svg.node().innerHTML);
是的,我已经得到了区别,所以答案是这是D3不可能的。知道原因会很有趣,因为'innerHTML'可以用'onClick'属性返回HTML标签。 – Nef10