jquery - 单击 AJAX 加载菜单后如何更改 URL?

标签 jquery html css ajax url

我一直在关注有关如何创建通过 AJAX 加载菜单的网站的视频教程 (https://www.youtube.com/watch?v=ytKc0QsVRY4)。这很好,只是我希望更改 URL,以便用户可以链接到某些内容,并且还可以正确使用浏览器上的后退和前进按钮。

如何实现这一点(希望它与我已经在做的工作兼容)?

fiddle :http://jsfiddle.net/neowot/ru8potv4/

HTML:

<body>
    <ul id="nav">
        <li><a href="index">Home</a></li>
        <li><a href="about">About Us</a></li>
        <li><a href="contact">Contact</a></li>
    </ul>

    <div id="content">
        <h1>Content</h1>
    </div>
    <script></script>

</body>

CSS

body{
    background-color: aqua;
}

ul#nav {
    list-style:none;
    padding:0;
    margin: 0 0 10px 0;
}

ul#nav li {
    display:inline;
    margin-right:10px;
}

JS

$(document).ready(function() {
    //initial
    $('#content').load('content/index.php');

    //handle menu clicks
    $('ul#nav li a').click(function() {
        var page = $(this).attr('href');
        $('#content').load('content/' + page + '.php');
        return false;
    });

});

最佳答案

在用户点击任何链接时将哈希 (#) 设置为页面 url。检查页面加载和 hashchange 事件上的 url 哈希....然后加载相应的页面。

这样您就可以为每个页面设置唯一的 url,并且浏览器来回按钮也能完美运行。

注意:javascript hashchange 事件可能无法在一些较旧的浏览器版本中工作,因此您可能想尝试任何可用的插件。

关于jquery - 单击 AJAX 加载菜单后如何更改 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32322679/

相关文章:

html - CSS 下拉菜单 - 与现有站点集成的问题

javascript - 在 Firefox 29+ 上使用 localStorage 时出现 IO 错误?

javascript - 有没有办法同时使用 onmouseover 和 onmousedown ?

javascript - 我的切换按钮有问题。每当我单击切换按钮时,该功能都没有响应并且不会更改为十字符号?

jquery - jQuery 可以将 ViewModel 发送到 ASP.NET MVC 中的 Controller 吗?

jquery - jQuery 会利用 HTML5 技术吗?

css - 选择在 Internet Explorer 中换行的元素文本

jquery - 使用 jQuery 删除内联样式

javascript - 是什么导致我的标签的事件处理程序触发两次?

jquery - 如何覆盖 jQuery 下拉 UI 样式?