2011-04-14 47 views
1

我有一個div元素,只要沒有背景色設置就需要隱藏。所以我想出了這個簡單的jQuery聲明:Chrome背景顏色問題:「透明」不是有效的值?

$(function() { 

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

}); 

一切正常在Firefox,它隱藏在包裝時沒有爲BG-顏色設置值。但在鉻和Safari瀏覽器似乎並不認爲透明作爲一個有效的價值..?

我試過值設定爲「空」或「身份不明」,但無濟於事..

任何人有任何線索?

回答

0

你的問題是jQuery中的不一致。通常,當沒有設置背景顏色時,該值將設置爲空字符串("")。請參閱:

var d = document.createElement("div"); 
return d.style.backgroundColor 

d.style.backgroundColor總是返回兩個Firefox和Chrome ""。但是,當使用jQuery css()函數時,jQuery將其轉換爲默認值。

我建議使用:$('.colorpicker')[0].style.backgroundColor == ""

0

鉻返回rgba(0, 0, 0, 0)代替transparent的RGBA顏色。檢查出this demo及其測試方法(demo)。

if (/transparent|rgba\(0, 0, 0, 0\)/.test($('.colorpicker').css('background-color')) 
{ 
    $(this).find('.colorpicker-wrapper').css('display','none'); 
}