我正在尝试使用jQuery将外部页面加载到当前页面而不会让用户看到页面加载。
当我调用页面'info.php'时,它被加载到#content
div中。这就是剧本应该做的事情。问题是在包含脚本和#content
div的主页面中,我已经有了一些代码,当有人访问页面而不是从任何外部页面调用时,我希望它能够被执行。这是有效的,但当我点击菜单中的一个链接时,我无法返回到初始内容。
以下是我的代码:
<script>
$(function() {
$('#nav a').click(function() {
var page = $(this).attr('href');
$('#content').load(page + '.php');
return false;
});
});
</script>
<ul id="nav">
<li><a href="#">Page1</a></li>
<li><a href="about">About</a></li>
<li><a href="contact">Contact</a></li>
<li><a href="info">Info</a></li>
</ul>
<div id="content">
Here I have some code that I wanted to be attributed to the "Page1"
</div>
答案 0 :(得分:0)
我对load()不太熟悉,但在这种情况下,我认为你应该使用ajax加载页面而不刷新。
var page = $(this).attr('href');
$.ajax({
url: page + '.php',
success: function(data)
{
$('#content').html(data);
}
})
编辑:你说“当我点击菜单中的一个链接时,我无法回到初始内容”,你的意思是说你在div中有一些代码#content并且onclick你已经覆盖了它的内容?
答案 1 :(得分:0)
以下是示例:
$(function()
{
var content = $('#content');
$('#nav a').click(function(e) {
e.preventDefault();
var page = $(this).attr('href');
content.children().hide();
var pageContent = content.find("#" + page);
if(pageContent.length > 0)
{
pageContent.show();
}
else // put ajax here
{
content.append($('<div>').attr('id', page).text('New page ' + page));
}
});
});