2014-07-16 37 views
0

總之,我需要先發制人地隱藏將在未來腳本中加載的元素。隱藏ajax注入元素而不觸及ajax調用本身

我正在一個大而雜亂的應用程序工作。在特定的頁面上,我可以運行任何我想要的javascript/jQuery,並在完成後,另一個模塊將運行,我無法控制。第二個模塊將元素注入到DOM中,絕不會向用戶顯示(笨拙,是嗎?只是這個特定的頁面應該具有這種反向的,不尋常的行爲;注入的元素適用於所有其他頁面)。關鍵是我無法訪問加載不需要的DOM元素的ajax調用。

我正在考慮注入一個CSS樣式表到頁面中,但我想比較替代品。

回答

1

我會用css。這將減少延遲。如果在加載所有內容後注入樣式,它將具有「閃存」樣式,這意味着它在消失之前可能會出現一段時間。連接速度慢的用戶會因此而受到影響,並且會受到移動設備的影響。如果您知道即將到來的元素,只需使用display:none;然後,使用jQuery將它帶回

+0

謝天謝地,在用戶的操作導致不需要的元素顯示之前,css文件會加載很多。 ...不幸的是,事實證明,注入CSS的這一點也會影響將來可能想呈現這些元素的ajax加載模態。 我想一個解決這個問題的方法是在這個有問題的模式上使用一個唯一的ID,這樣你的建議CSS定義將只針對該模式上不需要的元素。這是一個候選解決方案! –

+0

經過審查,CSS確實是最好的解決方案。它可以重用於類似的未來問題,其中我相信會有很多。 –

1

在ajax調用之前只隱藏元素將被注入的容器?

$(containerSelector).hide(); 

或注入CSS。如果您需要進行其他樣式更改,則需要注入CSS,否則只需使用jQuery隱藏即可。

+0

一個令人驚訝的簡單的解決方案。它可能不適合我的特殊情況,但它可能是這類問題的一般解決方案。絕對是一個候選解決方案。 –