2016-01-06 102 views
0

所以我有一些邏輯依賴於JQuery的element.width()方法。有時我的邏輯失敗了。我注意到,當元素被隱藏時,它只會失敗(位於引導可摺疊元素內)。我查看了文檔,他們說:JQuery - 如何確定一個DOM元素是否「隱藏」?

當元素或其父元素被隱藏時,.width()報告的值不能保證準確。要獲得準確的值,請確保在使用.width()之前元素可見。 jQuery將嘗試 暫時顯示,然後重新隱藏一個元素以測量它的尺寸,但這是不可靠的,並且(即使在準確的情況下) 會顯着影響頁面性能。這個展示和重新使用的測量功能可能會在將來的jQuery版本中被刪除。

所以我知道我的問題。我的計劃是檢查元素是否「隱藏」,如果是這樣,而不是立即執行邏輯,我將搜索可摺疊的父元素,並訂閱shown.bs.collapse事件的邏輯。

我的問題是如何檢查元素是否被JQuery的寬度方法視爲「隱藏」(如文檔中所述)。它是如此簡單:

element[0].style.display == "none" 

我想檢查,捕獲所有案件。

在此先感謝。

+0

https://api.jquery.com/category/selectors/visibility-filter-selectors/ – j08691

+2

合併':hidden'選擇和'。就是()'method - >'$(element).is(':hidden')'(返回一個布爾值)。 –

+0

擊敗了我:-) –

回答

0

我相信jQuery使用這種邏輯:

$(element).is(":visible")