如何填充动态创建的SVG(检查DOM是否更新)
How to fill dynamically-created SVGs (checking DOM is updated)
我有一些内联svg,路径为"paintstroke"类。我将它们作为一个更大函数的一部分插入,然后我希望稍后填充它们。问题是,我认为在调用此代码时(在创建svg之后)DOM还没有准备好,所以什么都没发生。
var paths = document.getElementsByClassName("paintstroke");
for(var i = 0; i < paths.length; i++){
paths[i].style.fill = colors[i];
}
如果我在调用上面的块之前执行setTimeout
,它通常可以工作,但偶尔会错过一些svg,这显然是一个棘手的解决方案。在尝试填充.paintstroke
对象之前,如何检查它们是否已准备就绪?
在尝试填充所有的.paintstroke对象之前,如何检查它们是否已准备就绪?
您可以使用旧DOMNodeInserted
事件:Jsfidle
document.addEventListener('DOMNodeInserted', function (event) {
if (event.target.classList.contains("paintstroke")) {
// do the trick here.
}
});
请注意,此解决方案在IE<10
UPDATE:基于注释,SVG 的工作示例
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何使用javascript从主svg对象动态创建svg视图框
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 如何更改<svg>标记为<img>用js标记
- 如何检查管道中未定义的项目
- 主干-不管怎样,检查事件以前是否绑定过
- 检查直线是否与带有 SVG 元素的圆相交
- 如何检查 svg 图像的大小
- 如何检查浏览器是否支持带有javascript的svg
- 检查变量是否为 SVG.js 元素实例
- 如何检查 Svg 元素的交集
- 检查svg元素是否在视图框中
- 如何填充动态创建的SVG(检查DOM是否更新)
- 检查浏览器是否支持移动设备的SVG,最好是Android
- 如何检查svg<g>元素支持css转换
- 是否有一种方法来检查SVG是否有有效的源代码?(创建SVG到画布的问题)
- 是否有方法检查特定点(X,Y)是否在SVG元素中
- 检查动画何时在SVG中结束
- 如何检查svg是否具有填充不透明度,而填充不透明度为0