Jquery SVG元素CSS更改在Chrome 35-36中不可见
我有一个包含大量SVG元素的应用程序。当我将鼠标悬停在SVG元素上时,它们会临时更改颜色,如果我单击其中一个元素,它会永久更改颜色(或者直到再次单击为止)。 单击SVG元素时,此代码称为:Jquery SVG元素CSS更改在Chrome 35-36中不可见,jquery,css,google-chrome,svg,google-chrome-devtools,Jquery,Css,Google Chrome,Svg,Google Chrome Devtools,我有一个包含大量SVG元素的应用程序。当我将鼠标悬停在SVG元素上时,它们会临时更改颜色,如果我单击其中一个元素,它会永久更改颜色(或者直到再次单击为止)。 单击SVG元素时,此代码称为: styles = styles + " selected"; $(this).attr("class", styles); CSS规则用颜色填充SVG元素。这在所有浏览器中运行了一段时间,但在Chrome35中已经停止运行,问题在36测试版中仍然存在。它似乎是固定在37。 在Chrome中,GUI似乎被卡住
styles = styles + " selected";
$(this).attr("class", styles);
CSS规则用颜色填充SVG元素。这在所有浏览器中运行了一段时间,但在Chrome35中已经停止运行,问题在36测试版中仍然存在。它似乎是固定在37。
在Chrome中,GUI似乎被卡住了——悬停和单击操作可以工作,但颜色变化不可见——代码执行正确,但似乎渲染不正确
我有几点见解:
Lukas如果您想更新网页的CSS规则,可以通过
document.styleSheets
所以第一个样式表是
document.styleSheets[0]
所以如果你有
p {
color: blue;
}
然后在页面的唯一样式表中
var rule = document.styleSheets[0].cssRules[0]
及
将更新规则中的颜色属性。还有更多信息。嗨,罗伯特,问题是-为什么它不能像其他浏览器或Chrome版本那样正确填充,我如何才能强制它按照我想要的方式运行?可能是个bug。正如您已经发现的,您可以删除并重新创建CSS规则来解决它$css(“填充”、“02B2B0”);它不起作用。这就是你的意思吗?不,我不是这个意思。我的意思是删除规则本身并重新创建它,而不是重新创建您对规则的元素赋值。罗伯特,谢谢您尝试帮助我。我不明白我该怎么做。css规则在.css文件中定义并正常工作。我如何模拟与Chrome开发者工具中相同的行为——禁用和启用规则?我解析了样式表,删除了规则,然后再次插入,到目前为止,它似乎已经修复。注意:样式表中的任何更改似乎都会起作用。非常感谢你,罗伯特。
document.styleSheets[0].cssRules[0].style.setProperty('color','#00cc00',null);