2010-09-15 18 views
12

estoy usando la función jQuery CSS con el estilo de algunos elementosCSS jQuery() para los elementos creados dinámicamente

$element.css(style); 

Esto funciona, pero una parte de los elementos se crean dinámicamente después de la carga de la página. Esto debería ser

$element.live ('created',function() { 
$(this).css(style); 
}); 

estoy atascado en el evento creado. ¿Algunas ideas?

+0

¿Cómo se crean los elementos? ¿No puedes usar una clase de CSS? –

+0

Estaba usando y quería pasar a una solución menos clase. –

Respuesta

20

No hay eventos para los elementos creados (no disponibles universalmente, de todos modos). Se podría

  • Añadir las reglas de una hoja de estilo para que se aplican automáticamente a los elementos de nueva creación
  • cadena del css() método cuando crea sus elementos:

    $('<img id="createdImage" src="some.jpg"/>') 
        .appendTo(document.body) 
        .css(style); 
    
  • Crear una nueva hoja de estilo dinámicamente:

    $("<style>").text("#myNewEl { width:20px; height:30px; }").appendTo("head"); 
    
+0

Estaba usando una hoja de estilo y lo que quería hacer era deshacerme de ella (menos archivos) y usar CSS desde su CSS en línea. –

+4

@Omar CSS en línea es una muy mala idea en general. No tiene nada de malo tener un solo archivo CSS con sus estilos. De hecho, es beneficioso porque los usuarios lo descargarán una vez y se almacenará en caché en vistas posteriores de la página. Aunque debería decir, CSS en línea está bien cuando necesitas hacerlo dinámicamente, p. no conoce el ancho/alto requerido de un elemento con anticipación. – DisgruntledGoat

+0

@OmarAbid, puede especificar clases dentro de HTML que pueden tener o no definiciones de CSS en su archivo CSS. Jquery no funciona según las definiciones de esas clases. – KBN

0
$('head').append(' 
<style> 
.folder { background: url(../icons/Folder_icons/g/f.png) no-repeat left top;} </style >'); 
Cuestiones relacionadas