我在同一个脚本中使用 Jquery 和 D3.js。我有一个使用 D3.js 修改的 svg 元素。然后,当我使用 Jquery 对该元素进行选择时,我看不到 D3.js 所做的修改。
开头的 DOM:
<svg>
<g id="myId"></g>
</svg>
用D3.js修改后的DOM:
<svg>
<g id="myId" transform="translate(10, 10)"></g>
</svg>
然后:
$("#myId").attr("transform") --> return undefined.
我不明白这里出了什么问题。有什么想法吗?
最佳答案
在不提供更多代码的情况下,很难确切地说出是什么导致了您的问题,但是听起来问题就像您的代码异步执行一样。 Sugar Patro 的答案可能有效,但在我看来代码看起来相当臃肿。
您可以使用.call()
selection.transition()
.call(endAll, function () {
console.log("All the transitions have ended!");
});
function endAll(){
//Perform your logic here
var transform = $("#myId").attr("transform");
}
这个答案进一步详细说明了过渡结束。 Here .
关于javascript - jquery 之外的 DOM 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39163608/