回答
jQuery的檢查,如果該元素是可見的,隱藏只有當它的可見:https://github.com/jquery/jquery/blob/master/src/css.js#L78
} else if (!values[ index ] && !isHidden(elem)) {
jQuery._data(elem, "olddisplay", curCSS(elem, "display"));
}
所以你不要需要執行額外的檢查。任何手動檢查都會使性能(和實際可讀性)變差。
如果您隱藏已經隱藏的元素,則不會發生任何事情。
「壞」的唯一方法是它正在執行不需要執行的代碼。
如果使用隱藏你可以檢查是():
if(!$("my-element").is(":visible")) {
$("my-element").hide();
})
然而,這導致其他代碼被執行,不需要(檢查代碼)。 – Thilo
是真的,但這個檢查代碼可能比jQuery的內部檢查代碼少...?將必須描述他們兩個以確保:) – danwellman
在大概更頻繁的情況下(該元素實際上需要隱藏),*兩個*檢查將運行。 – Thilo
僅供hiding
你不需要檢查元素是否已經hidden
或沒有,但如果你有一個像的情況下如果該元素則表明做其他別的事情,那麼你可以使用元素
if ($('your-element').is(':hidden')) {
$('your-element').show();
} else {
//do something else
}
如果
$("my-element").hide();
和
if(!$("my-element").is(":visible")) {
$("my-element").hide();
})
之間的選擇
爲了便於閱讀,它只有第一行更簡單(更好?)。 jQuery將會檢查你是否執行該操作。
看起來@zerkms已經說過同樣的事情。 **我認爲應該**真的點擊那個加載新答案鏈接。 – Abhilash
最好在隱藏元素之前檢查元素的可見性。
$('#element').hide();
它會在Internet Explorer(IE9)中導致一些問題。有些時候頁面無法正常加載。有些內容將會從頁面中遺漏。
以下代碼更好。
if(!$("#myelement").is(":visible")) {
$("#myelement").hide();
})
- 1. 隱藏元素點擊隱藏元素
- 2. Cookie隱藏多個元素
- 3. TSQL多糟糕的表現
- 4. jquery修改,易於隱藏/顯示,我的語法很糟糕
- 5. 隱藏元素
- 6. 隱藏元素
- 7. 隱藏元素
- 8. 創建多個HashMap有多糟糕?
- 9. Mouseleave隱藏元素?
- 10. UIWebView隱藏元素
- 11. 隱藏p元素
- 12. 隱藏html元素
- 13. 隱藏的元素?
- 14. Android:隱藏元素
- 15. 當隱藏元素時隱藏值
- 16. Zend隱藏的元素:隱藏html值
- 17. 如何隱藏多個元素
- 18. jQuery隱藏並顯示多個元素
- 19. HTML/CSS顯示/隱藏多個元素?
- 20. Javascript隱藏/顯示有很多元素
- 21. CSS變化時隱藏多個元素
- 22. 顯示/隱藏多個元素
- 23. 糟糕的一元操作數顯然
- 24. C++連接糟糕
- 25. 糟糕的表現
- 26. pci_disable_msi糟糕問題
- 27. DOM中的元素堆積如此糟糕嗎?
- 28. 爲什麼jQuery UI隱藏隱藏父元素?
- 29. 爲什麼要隱藏HTML元素?
- 30. 爲什麼隱藏邊欄元素?
這不好顯示塊元素! :)如果你在談論一個唯一的元素....不要打擾。客戶正在等待。 –
爲什麼要隱藏隱藏的元素?那是什麼目的? – Vucko
@ Vucko:不是故意的。只是爲了避免代碼複雜化(使用避免重複隱藏的必要邏輯)。 – Thilo