2010-09-15 37 views
12

我使用jQuery CSS功能樣式一些元素jQuery的CSS()用於動態創建的元素

$element.css(style); 

這工作,但元素的一部分是在頁面加載後動態創建。 這應該是

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

我卡在創建的事件。有任何想法嗎?

+0

如何創建元素?你不能只使用一個CSS類嗎? – 2010-09-15 11:52:33

+0

我正在使用並希望轉移到一個較少的解決方案。 – 2010-09-15 12:00:15

回答

20

沒有創建元素的事件(無論如何都不是通用的)。你可以

  • 添加規則的樣式表,它們會自動應用到新創建的元素
  • 鏈的CSS()方法,當你創建你的元素:

    $('<img id="createdImage" src="some.jpg"/>') 
        .appendTo(document.body) 
        .css(style); 
    
  • 動態創建新的樣式表:

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

我正在使用樣式表,我想要做的是擺脫它(少文件),並使用CSS,因爲它的內聯CSS。 – 2010-09-15 11:59:32

+4

@Omar inline CSS通常是一個非常糟糕的主意。將一個CSS文件與您的樣式放在一起沒有任何問題。實際上,這是有益的,因爲用戶只需下載一次,然後將其緩存到後續頁面視圖上。儘管我應該說,當你需要動態地執行內聯CSS時,內聯CSS是很好的,例如,您不會提前知道元素所需的寬度/高度。 – DisgruntledGoat 2010-09-15 12:06:33

+0

@OmarAbid,你可以在HTML文件中指定可能有或沒有CSS定義的類。基於這些類的定義,jquery不起作用。 – KBN 2012-04-29 14:55:56

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