2010-07-20 118 views
1

我知道有很多關於jQuery slideToggle「閃爍」的問題,但我沒有看到任何具體解決此頁面加載閃爍的問題。jQuery slideToggle在頁面加載「閃爍」

點擊here爲工作示例。

如果您單擊刷新或單擊其他數據表頁面(位於數據表&產品信息部分下),當頁面加載時,隱藏的div會「閃爍」擴展的內容,然後快速崩潰。我注意到這在Firefox中,而不是在IE或Chrome中。我能做些什麼來防止這種情況發生?這是否取決於頁面加載的速度?

此外,請原諒惡夢的表格代碼。我從之前的開發人員那裏繼承了這個。我們計劃在後期回去糾正這一問題,但我想知道現在是否有解決此問題的快速解決方案。

謝謝!

+0

我已經處理過類似的事情lonut的方式說,它通常工作。僅供參考,我處於中低速網絡,並且在Firefox 3.6或Opera 10.6中不閃爍。它是在IE6中做的(但誰在乎)。 – Zacho 2010-07-20 20:28:00

回答

2

也許display:none對於像#mover2這樣的元素? (當然,這也意味着沒有優雅降級)

EDIT(另一個問題的回覆) 爲了避免使用#ID,#ID1,ID2#在你的CSS,你可以簡單地添加一個額外的類來這些div ,如hideThis

然後,在CSS中,您可以添加: .hideThis {display:none; }

0

這與Firefox的加載我相信javascript的延遲有關。

我按照Ionut Staicu的建議,將它們隱藏在.CSS中,這可能比隱藏方法更快。

我也想嘗試$('[id=^mover]').hide();而不是所有個別的像$('#mover1').hide();

+0

輕彈將會在那裏,因爲'.hide()'的東西被稱爲AFTER DOM準備好後。所以你必須通過CSS隱藏它:) – 2010-07-20 20:47:08

+0

你們是如此怪異的樂於助人!我可以再次選擇你的大腦嗎?有沒有一種方便的簡短方式鍵入#mover1,#mover2,#mover3 ... {display:none;},而不是單獨輸入每個選擇器?在一頁上,我有多達20個這些東西。 非常感謝! – 2010-07-20 20:53:06

+0

$('[id =^mover]')。hide();是你要求的選擇。它表示每個以「移動者」開頭的「id」屬性。你也可以把它們作爲$(「mover1,mover2,mover3」)。hide();而不是單獨的(這是jQuery選擇器)不能確定CSS以外的CSS。 – 2010-07-20 21:08:38