¿Cómo puedo obligar a WebKit a volver a dibujar / repintar para propagar los cambios de estilo?
Tengo un JavaScript trivial para realizar un cambio de estilo:
sel = document.getElementById('my_id');
sel.className = sel.className.replace(/item-[1-9]-selected/,'item-1-selected');
return false;
Esto funciona bien con las últimas versiones de FF, Opera e IE, pero falla en las últimas versiones de Chrome y Safari.
Afecta a dos descendientes, que resultan ser hermanos. El primer hermano se actualiza, pero el segundo no. Un hijo del segundo elemento también tiene foco y contiene el<a> etiqueta que contiene el código anterior en unal hacer clic atributo.
En la ventana de "Herramientas para desarrolladores" de Chrome si empujo (por ejemplo, desmarcar y marcar)alguna atributo dealguna elemento, el segundo hermano se actualiza al estilo correcto.
¿Existe una solución para "empujar" WebKit de manera fácil y programática para que haga lo correcto?