2013-07-15 62 views
0

我們都知道jQuery doesn't calculate the width of hidden elements。對? 在jQuery 1.10中有這個變化嗎?jQuery 1.10現在計算隱藏元素的寬度?

this jsFiddle中,計算隱藏的LI <li style="display:none;">a hidden li</li>的寬度。爲什麼是這樣?

如果最近的更新改變了行爲,我怎樣才能確保寬度不計算?我試過了:

$('#theList li').each(function() { 
    totalWidth += $(this).is(':visible').width(); 
}); 

但是這也沒有奏效 - 它仍然返回了元素和寬度。

回答

1

您可能首先檢查元素是否可見,然後執行您的功能。

var totalWidth = 0; 

$('#theList li').each(function() { 
    if ($(this).is(":visible")){ // CHECK FIRST IF VISIBLE 
    var $this = $(this); 
    totalWidth += $this.width(); 

    $('#theListItems').append($this.text() + " (" +$this.width() + " width)<br>"); 
    $('#totalWidth').html(totalWidth); 
    } 
}); 

的jsfiddle:http://jsfiddle.net/javascript/LQZB2/

+0

感謝。這是完美的。我想知道計算何時改變。我沒有在jQuery網站上看到任何關於它或筆記的提及,包括在.width()文檔頁面上。 – dmathisen

+0

我從來沒有讀過他們的任何文件。這是理智的設計的常識。在你的情況下,你只要檢查每個李,如果可見。沒有其他解釋。隨意檢查這是答案的問題。 – jQuerybeast

+0

「這是很常識」是的,同意 - 但那不是以前的樣子。 jQuery曾經忽略任何隱藏的元素。無論如何,將其標記爲已回答。 – dmathisen