Chrome背景颜色问题:“透明”不是有效值?

| 我有一个div元素,只要没有背景色设置就需要隐藏。所以我想出了这个简单的jquery语句:
$(function() {

if ($(\'.colorpicker\').css(\'background-color\') == \'transparent\')
{
$(this).find(\'.colorpicker-wrapper\').css(\'display\',\'none\');
}

});
一切在Firefox中都运行良好,当没有为bg-color设置任何值时,它将隐藏包装器。但是在chrome和safari中,似乎没有将透明识别为有效值。 我尝试将值设置为\'null \'或\'unidentified \',但无济于事。 有人有任何线索吗?     
已邀请:
您的问题是jQuery中的不一致。通常,如果未设置背景色,则将值设置为空字符串(
\"\"
)。看到:
var d = document.createElement(\"div\");
return d.style.backgroundColor
对于Firefox和chrome,d.style.backgroundColor将始终返回
\"\"
。但是,当使用jQuery
css()
函数时,jQuery会将其转换为其默认值。 我建议使用:
$(\'.colorpicker\')[0].style.backgroundColor == \"\"
    
Chrome会返回
rgba(0, 0, 0, 0)
而不是
transparent
的rgba颜色。查看此演示以及测试它的方法(演示)。
if ( /transparent|rgba\\(0, 0, 0, 0\\)/.test( $(\'.colorpicker\').css(\'background-color\') )
{
  $(this).find(\'.colorpicker-wrapper\').css(\'display\',\'none\');
}
    

要回复问题请先登录注册