2010-09-15 43 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 >');