2010-10-27 55 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