2009-04-03 13 views
5

Estoy usando DOM para administrar una respuesta JSON desde una función AJAX que estoy ejecutando. El guión que estoy escribiendo debe ser completamente portátil, por lo que estoy definiendo los estilos para los elementos creados sobre la marcha (es decir, sin vínculos a un CSS externo, y sin proporcionar CSS en el documento HTML en sí, porque no lo haré). tener control del doc).¿Cómo puedo establecer un css ": hover" en un elemento creado DOM en JavaScript?

Me gustaría crear un efecto de desplazamiento sobre algunos de los elementos.

ejemplo:

 #myDiv:hover { background:#000000; }

¿Hay una manera de definir que en el DOM? ¿O tengo que usar mouseover?

Respuesta

11

Puede crear y manipular dinámicamente hojas de estilo. See here para algunos de los problemas de navegadores cruzados con este enfoque.

Tengo una función de envoltura lying around que funciona en algunos de ellos; usarlo, el código se lee

document.createStyleSheet().addRule('#myDiv:hover', 'background:#000000;'); 
+0

Para mí CSS en línea no es lo suficientemente bueno. Me refiero a una buena respuesta, así que no estoy bajando votos, pero debería ser posible de otra manera. –

+0

actualización 2017: createStyleSheet() era sólo IE, pero desde IE11 se desaprobó https://technet.microsoft.com/en-us/ms531194(v=vs.71) – BigJ

3

puede crear elemento con clase predefinida:

.h:hover{color: #c00} 

var elem = document.createElement('div'); 
elem.className = 'h' 
+0

bueno, y sí ... sin embargo no lo hice tener la capacidad de vincular a una hoja de estilo – johnnietheblack

Cuestiones relacionadas