我创建了一个网站,使用 PHP include 来获取所有内容。然后我创建了一个内容页面,这个页面是唯一刷新的页面。它也是唯一一个信息/文本被隐藏的页面。我使用 jQuery、PHP 和 Ajax 来做到这一点。
现在,这一切都可以正常工作,并且应该如此,但是它在网站导航方面产生了一些新问题。
导航只是列表中的一组链接。但是,每当单击其中一个时,我都会做到这一点,以便它获得一个具有新样式的新类。以便用户可以看到他/她在网站上的位置。我已经使用 .toggleClass 方法使用 javascript 和 jQuery 完成了这项工作。这行得通,但现在我要解决手头的问题了。
所以这是交易:
每当我通过浏览器刷新网站时,.toggleClass 信息都会丢失,按钮也会丢失其类和样式。即使页面没有改变,只是刷新了。此外,当我单击横幅中的“主页”按钮返回首页时,情况正好相反。激活 .toggleClass 的最后一个按钮保持其类和样式,即使我不再在该页面上,但返回到初始索引。
我知道我的代码并没有那么令人印象深刻,它可能有很多错误。我还不是很熟练,我还在学习。无论如何有办法解决这个问题吗?还是只是我做错了什么?或者也许有一种更简单、更好的方法来制作这样的网站?
这是我的代码:
索引.php
<?php
include("layout/header.php");
include("content/content.php");
include("layout/footer.php");
?>
load_page.php
<?php
if(!$_GET['page']) die("0"); {
$page = (int)$_GET['page'];
if(file_exists('pages/page_'.$page.'.html')) {
echo file_get_contents('pages/page_'.$page.'.html');
} else {
echo 'There is no such page!';
}
}
?>
ajax.js
$(document).ready(function () {
checkURL();
$('ul li a').click(function (e) {
checkURL(this.hash);
});
setInterval("checkURL()", 200);
});
var lasturl = ""; // storage
function checkURL(hash) {
if (!hash) hash = window.location.hash;
if (hash != lasturl) {
lasturl = hash;
loadPage(hash);
}
}
function loadPage(url) // AJAX function
{
url = url.replace('#page', '');
$.ajax({
type: "GET",
url: "load_page.php",
data: 'page=' + url,
dataType: "html",
success: function (msg) {
if (parseInt(msg) != 0) {
$('#pageContent').html(msg);
}
}
});
}
javascript.js
$(document).ready(function(){
$('.button').click(function(){
$('.buttonselected').removeClass('buttonselected');
$(this).toggleClass('buttonselected');
});
});
我不会发布我所有的 HTML 和 CSS 代码,那样就太多了。我已经发布了大量代码。但这里是您可能需要的必需品。
我的导航具有通过 Ajax 生成的动态内容/页面的链接。
<nav>
<ul id="navigation">
<li> <a class="button" href="#page1"> Frontpage </a> </li>
<li> <a class="button" href="#page2"> Archive </a> </li>
<li> <a class="button" href="#page3"> Stuff </a> </li>
<li> <a class="button" href="#page4"> Portfolio </a> </li>
</ul>
</nav>
通过ajax和php添加页面的内容页面。
内容.php
<div id="pageContent">
<!-- content comes here -->
</div>
最后只是一些注释:
- 是的,我正在链接到一个 jQuery 文档。
- 一切正常,除了按钮。
- 如果您想了解有关某事的更多信息,请告诉我。
- 感谢您花时间阅读所有这些!