0
我必須隱藏<table>
的某些行,其中將包含特定的單詞。我通過使用jQuery的:contains
選擇器並使用.hide()
來搜索這些行。沒有閃光的隱藏元素
問題是,它會導致一個令人不快的閃爍,在他們隱藏前瞬間顯示這些行。
是否有減少閃爍的可能性,或將某些事件綁定到文檔,該文檔將在創建時分析每個DOM元素,如果符合某些要求則不會渲染它們?
我必須隱藏<table>
的某些行,其中將包含特定的單詞。我通過使用jQuery的:contains
選擇器並使用.hide()
來搜索這些行。沒有閃光的隱藏元素
問題是,它會導致一個令人不快的閃爍,在他們隱藏前瞬間顯示這些行。
是否有減少閃爍的可能性,或將某些事件綁定到文檔,該文檔將在創建時分析每個DOM元素,如果符合某些要求則不會渲染它們?
大多數模板引擎會做你想做的事情,允許你添加一些邏輯來決定是否首先創建一個元素。
另一個選擇是從一開始就隱藏你的表(在CSS display:none
中),運行你的jQuery來查找你想隱藏的行(甚至刪除),然後使用jQuery使你的表可見(與.show()
)。這種方法的缺點是,如果你有一個沒有啓用JavaScript的訪問者,它不會優雅地退化。他們永遠無法看到桌子!
當然,如果您沒有啓用JavaScript,您將無法隱藏客戶端上的行。你必須在服務器端處理它。
如何顯示您正在使用的代碼片段? – Krule
所以你想從一開始就隱藏這些行嗎?那是對的嗎?通過「閃光」,你的意思是他們在隱藏之前短暫可見? –
您可以通過將代碼移到DOMReady事件之外並將其放在結束標籤之前來減少發生這種情況的可能性,但是在較慢的瀏覽器中,您仍然可以看到FOUC(「閃爍」)。完全阻止它的唯一方法是用JavaScript以外的東西隱藏它,或者在完成操作之前隱藏整個表。 –