2010-09-15 46 views
12

ich jQuery CSS-Funktion bin mit ein paar ElementejQuery CSS() für dynamisch erstellte Elemente

$element.css(style); 

Dies funktioniert, um Stil, sondern ein Teil der Elemente werden dynamisch nach dem Laden der Seite erstellt. Dies sollte

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

sein, die ich auf der Veranstaltung erstellt bin stecken. Irgendwelche Ideen?

+0

Wie werden die Elemente erstellt? Kannst du nicht einfach eine CSS-Klasse verwenden? –

+0

Ich benutzte und wollte zu einer klassenlosen Lösung wechseln. –

Antwort

20

Es gibt kein Ereignis für Elemente erstellt (nicht allgemein verfügbar sowieso). Sie könnten

  • die Regeln zu einem Stylesheet hinzufügen, so dass sie automatisch
  • Kette der css() Methode auf die neu erstellte Elemente angewendet werden, wenn Sie Ihre Elemente erstellen:

    $('<img id="createdImage" src="some.jpg"/>') 
        .appendTo(document.body) 
        .css(style); 
    
  • Erstellen Sie ein neues Stylesheet dynamisch:

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

Ich benutzte ein Stylesheet und was ich tun wollte ist, es loszuwerden (weniger Dateien) und CSS seit seinem Inline-CSS zu verwenden. –

+4

@Omar Inline CSS ist im Allgemeinen eine sehr schlechte Idee. Es ist nichts falsch daran, eine CSS-Datei mit Ihren Styles zu haben. Tatsächlich ist es vorteilhaft, weil Benutzer es einmal herunterladen und es auf nachfolgenden Seitenansichten zwischengespeichert werden sollte. Obwohl ich sagen sollte, inline CSS ist in Ordnung, wenn Sie es dynamisch tun müssen, z. Sie kennen die erforderliche Breite/Höhe eines Elements nicht im Voraus. – DisgruntledGoat

+0

@OmarAbid, Sie können nur Klassen innerhalb von HTML angeben, die möglicherweise CSS-Definitionen in Ihrer CSS-Datei enthalten. Jquery funktioniert nicht basierend auf den Definitionen dieser Klassen. – KBN

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