2012-02-08 118 views
5

每個人都知道如何通過$ .load加載Ajax請求來解決css問題?例如,如果我想從一個網頁加載只是一個DIV,用我的Ajax請求後:jquery ajax加載後丟失css加載

$('container').load('path_to_div #div_id'); 

我失去與該div

任何想法請

相關聯的所有CSS和腳本
+0

通過相關的,你的意思是「內部」的DIV(內聲明的),或者您遇到這裏的款式沒有更多的應用和JavaScript事件是一個問題未綁定? – FMaz008 2012-02-08 14:32:59

+0

樣式和javascript不再適用 – user765368 2012-02-08 14:33:28

+0

這可能是因爲應用於另一個樣式的樣式不再與新元素相匹配。所以他們被忽視了。 – 2012-02-08 14:34:19

回答

0

您可以像在this answer中那樣動態加載CSS,或者將它們添加到要加載div的頁面的CSS文件中。

至於外部腳本,$.getScript()應該照顧你的問題。

1

是的,所有附加的事件處理程序將在AJAX取代內容時斷開連接。您可以使用jQuery的.on().live()作爲替代事件掛鉤來防止這種情況。

至於CSS,您可能在替換的內容上缺少原始內容的類名或ID,或者替換的內容與您在CSS中設置的相同選擇器不匹配。

沒有看到您的HTML/CSS,這是不可能告訴。

1

將元素(及其子元素)的所有CSS包含在主要頁面中包含的CSS文件中,該文件將被加載到該文件中。因此,如果您有main.html,並且您正在將#div_id div加載到該頁面中,則您需要在main.html的範圍內包含#div_id的CSS。

您還需要包含一個腳本,可以將事件處理程序(如.delegate()(適用於1.7之前的jQuery版本)或.on()(適用於jQuery 1.7+))委託給加載了AJAX的內容。

1

我有這樣的錯誤的解決辦法是:

$('#contentPagina').load(nombrePagina,function(){ $('#contentPagina').trigger('create'); });

+0

我一直在尋找這一個小時now.Thank你! – 2014-01-06 21:53:17