2012-07-26 44 views
0

使用webkit時,我無法讀取由外部css護套設置的值。webkit中的jquery css值

$(document).ready(function() { 
    var plate = $(document.createElement('div')) 
      .css({'overflow': 'hidden', 
        'display': 'inline-block'}) 
      .attr('class', $(this).attr('class')) 
      .addClass('bbFormerPlate'); 
    console.log(plate.css('paddingRight')); 
    console.log(plate.css('paddingBottom')); 
}); 

Chrome中的控制檯沒有顯示任何內容。只是一條空白的線。 Firefox沒有問題。經過測試的Safari(Windows)無法與我一起工作,認爲它是webkit,這是問題所在。

我試圖將它添加到已經定位在頁面上的另一個元素,以查看是否有任何區別。

$(positionedElement).wrap(plate); 

沒有變化。仍然不能在Webkit上工作,但在FF上工作。

的樣式聲明:

.bbFormerPlate { 
    padding: 2px 15px 2px 5px; 
    font-size: 10px; 
} 

的風格實際上應用到元素,因爲它出現在頁面上,但該值不能由腳本讀取。我不記得我之前有過這個問題。

任何幫助,將不勝感激。

+0

你把你的console.logs的DOM準備申報外,所以你有一個範圍問題。板變量只存在於該函數內。 – 2012-07-26 16:32:09

+0

啊...我的壞。他們實際上在準備好的聲明中。當我寫上面的例子時,我意外地把它放在外面 – Anders 2012-07-26 16:42:52

回答

1

在你的榜樣,你沒有插入DOM裏面的元素,看看這個(工作)

$(document).ready(function() { 
    var plate = $('<div></div>') 
     .css({'overflow': 'hidden', 
       'display': 'inline-block'}) 
     .attr('class', $(this).attr('class')) 
     .addClass('bbFormerPlate'); 
     $('body').append(plate); // added this line 

    console.log(plate.css('paddingRight')); 
    console.log(plate.css('fontSize')); 
});​ 

DEMO.

+0

我想.wrap會這樣做。我會做更多的測試並回復你 – Anders 2012-07-27 09:15:40

+1

使用.append()和.appendTo()可以正常工作。我會堅持,而不是用.wrap()敲打我的頭。謝謝 – Anders 2012-07-27 09:27:59

+0

不客氣:-) – 2012-07-27 13:13:52