如何选择尚不存在的元素(jQuery)并更改其样式?

Ata*_*adj 7 jquery select element colors live

以下是我的代码.我想改变#preview div的背景颜色,但总是无法选择#preview.它似乎在脚本执行时不存在.其他jQuery脚本稍后会创建它.

jQuery("#panel").mouseleave(function(){
    var good_color = jQuery('.colorpicker_hex input').val();
    jQuery("#preview").css({ 'background-color': good_color });
});
Run Code Online (Sandbox Code Playgroud)

如何选择所有当前和未来的#preview div并更改其背景颜色?我认为有类似live()的东西,但我还没有找到CSS更改的例子.

T.J*_*der 8

jQuery并没有特别指出你所列出的内容.但是,您可以添加一个style元素来执行此操作:

$("<style>#preview { background-color: #eee; }</style>")
    .appendTo(document.documentElement);
Run Code Online (Sandbox Code Playgroud)

像所有样式规则一样,当任何元素匹配时,它将适用.当你在文档元素的末尾添加它时,它应该赢得任何样式冲突(除非特异性差异,但id选择器非常具体).

实例 - 在Chrome,Firefox,Opera,IE6和IE9中经过测试和使用