2010-10-27 76 views
2

我創建了一個包含3個不同選項卡的index.html頁面。使用jQuery UI的功能tabs()我想用Ajax加載一個html頁面。每個HTML頁面使用jQuery庫,所以每一頁有這樣的代碼:jQuery UI選項卡可以加載新的完整HTML頁面嗎?

<link type="text/css" href="css/redmond/jquery-ui-1.8.5.custom.css" rel="stylesheet" /> <script type="text/javascript" src="js/jquery-1.4.3.js"></script> 
<script type="text/javascript" src="js/jquery-ui-1.8.5.custom.min.js"></script> 

如果我點擊了頁面加載標籤,但頁面的JavaScript函數不工作了!

那麼我可以加載一個新的完整的HTML頁面(HTML + JS)的標籤?

回答

0

好的,問題是要了解標籤的功能。藉助Ajax,我可以在選項卡中加載一些內容。 如果我聲明<div>爲一個選項卡,Ajax加載該內容<div>,所以我不能加載一個新的完整的HTML頁面,因爲加載後有兩個開放的<html><head> ecc。

所以現在我明白了標籤中Ajax的功能,而完整的HTML頁面的加載是一個大錯誤!

感謝Tobias。

2

兩種可能性:

1)如果你需要的jQuery UI的每個選項卡中,最好initalizing你的標籤時加載它。

2)使用後加載JavaScript文件:

$.getScript("js/jquery-ui-1.8.5.custom.min.js");
和CSS:
$.get("css/redmond/jquery-ui-1.8.5.custom.css", function(css) { 
$("head").append(""+css+""); 
});

編輯:你從來沒有加載完成新的HTML頁面,Ajax選項卡 - 你只加載它包含的代碼片段在你現有的html頁面中。使用Firebug for Mozilla Firefox來查看會發生什麼; o)

+0

爲什麼我從來沒有加載一個新的html頁面?問題是什麼? – user473349 2010-10-27 09:03:00

+0

實際上,您加載了一個新的html頁面 - 但加載一個看起來像這樣的文檔並不是很巧妙: [...]因爲您將此文檔包含在您現有的文檔中;所以你有兩次。因此,您無法訪問標籤以包含腳本文件。相反,你可以使用$ .getScript()。 – 2010-10-27 09:14:44

+0

因此,如果我明白當我點擊一個標籤時,鏈接頁面的內容會被添加到頁面中?所以,如果我有兩個鏈接相同的HTML頁面的標籤,第二個標籤不起作用,因爲DOM內容只是放在第一個標籤!那麼如何加載內容並刪除以前的dom? – user473349 2010-10-27 09:25:20

相關問題