Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于动态创建元素的jQuery CSS()_Jquery_Css_Live - Fatal编程技术网

用于动态创建元素的jQuery CSS()

用于动态创建元素的jQuery CSS(),jquery,css,live,Jquery,Css,Live,我正在使用jQueryCSS函数来设置一些元素的样式 $element.css(style); 这是可行的,但是一部分元素是在页面加载后动态创建的。 这应该是 $element.live ('created',function() { $(this).css(style); }); 我被创建的事件卡住了。有什么想法吗?没有创建元素的事件(无论如何,不是普遍可用的)。你可以 将规则添加到样式表中,以便它们自动应用于新创建的元素 创建元素时链接css()方法: $('<img id="c

我正在使用jQueryCSS函数来设置一些元素的样式

$element.css(style);
这是可行的,但是一部分元素是在页面加载后动态创建的。 这应该是

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

我被创建的事件卡住了。有什么想法吗?

没有创建元素的事件(无论如何,不是普遍可用的)。你可以

  • 将规则添加到样式表中,以便它们自动应用于新创建的元素
  • 创建元素时链接css()方法:

    $('<img id="createdImage" src="some.jpg"/>')
        .appendTo(document.body)
        .css(style);
    
    $(“”)
    .appendTo(document.body)
    .css(风格);
    
  • 动态创建新样式表:

    $("<style>").text("#myNewEl { width:20px; height:30px; }").appendTo("head");
    
    $(“”)。文本(“#myNewEl{宽度:20px;高度:30px;}”)。附录(“头部”);
    
$('head')。追加('head')
”;
最好的办法是定义CSS类。然后删除并添加 根据需要从动态元素中分类

示例:

元素是如何创建的?你不能只使用CSS类吗?我正在使用并且想要转向一个无类的解决方案。我正在使用样式表,我想做的是摆脱它(更少的文件)并使用CSS,因为它是内联CSS。@Omar内联CSS通常是一个非常糟糕的主意。在一个CSS文件中添加样式没有什么错。事实上,这是有益的,因为用户只需下载一次,就可以在后续页面视图中缓存。虽然我应该说,当您需要动态地执行内联CSS时,例如您事先不知道元素所需的宽度/高度时,内联CSS是可以的。@OmarAbid,您可以在HTML中指定类,这些类在CSS文件中可能有CSS定义,也可能没有CSS定义。基于这些类的定义,Jquery不起作用。很抱歉,我只是在组合框(选择>选项)上尝试了这一点,所以这不起作用,但肯定是因为“选项”无法CSS内部嵌套元素。。。所以这应该是正常的,当JQ扫描DOM时,它只对当前元素有效。不会扫描所有新元素,因此,您的解决方案不起作用。
$('head').append('
< style >
.folder { background: url(../icons/Folder_icons/g/f.png) no-repeat left top;} < / style >');
$(element).addClass("className");
$(element).removeClass("className");