如何强制WebKit重绘/重绘以传播样式更改?

我有一些简单的JavaScript来实现样式更改:

sel=document.getElementById('my_id');
sel.className=sel.className.replace(/item-[1-9]-selected/,'item-1-selected');
返回false;

这适用于最新版本的FF、Opera和IE,但不适用于最新版本的Chrome和Safari

它影响到两个后代,他们碰巧是兄弟姐妹。第一个兄弟更新,但第二个兄弟不更新。第二个元素的子元素也有焦点并包含<a&gt标记,在onclick属性中包含上述代码

在Chrome“开发者工具”窗口中,如果我轻推(例如,取消选中&检查)any元素的any属性,则第二个同级更新为正确的样式

是否有一种变通方法可以轻松地通过编程“推动”WebKit做正确的事情

我发现一些复杂的建议和许多简单的建议都不起作用,但瓦西里·丁科夫(Vasil Dinkov)对其中一个建议的评论提供了一个简单的解决方案,强制重新绘制/重新绘制效果良好:

sel.style.display='none';
选择偏离视线;//无需将其存储在任何地方,参考就足够了
sel.style.display='';

如果它适用于“块”以外的样式,我会让其他人评论

谢谢,瓦西里

发表评论