javascript - 为什么 HTML anchor 不能更改 URL?

标签 javascript html css anchor

我正在制作类似于轮播的滑动效果。我设置了四个盒子,每个盒子的内容都不一样,我用一个nav来导航。

我发现每次刷新,页面都会回到第一个框。但我希望页面在刷新之前返回到框。此外,当我点击“a”标签时,“#box*”不会添加到 URL。如何解决?

<ul id="menu" class="nav nav-list span2">
    <li class="nav-header">nav</li>
    <li class="active">
        <a href="#box1" class="link">box1</a>
    </li>

    <li>
        <a href="#box2" class="link">box2</a>
    </li>

    <li>
        <a href="#box3" class="link">box3</a>
    </li>

    <li>
        <a href="#box4" class="link">box4</a>
    </li>
</ul>


<li id="box1" class="box">

    <div>XXXXX</div>
</li>

<li id="box2" class="box">

    <div>XXXXX</div>
</li>

JavaScript 代码

$('a.link').click(function(){
    $(this).parents("ul").children("li").removeClass("active");
    $(this).parents("li").addClass("active");
    $('#wrapper').scrollTo($(this).attr('href'), 800);
    return false;
});

最佳答案

你必须添加 id="box1", id="box2", ... 到您希望浏览器跳转到的元素。

例如:

<ul id="menu" class="nav nav-list span2">
    <li class="nav-header">nav</li>
    <li class="active">
        <a href="#box1" class="link">box1</a>
    </li>

    <a href="#box2" class="link">box2</a>

    <li>
        <a href="#box3" class="link">box3</a>
    </li>

    <li>
        <a href="#box4" class="link">box4</a>
    </li>
</ul>

<div id="box1">
    <h2>yo box1</h2>

    Put a lot of content here
</div>

<div id="box2">
    <h2>yo box2</h2>

    Put a lot of content here
</div>

这会将散列添加到您的 URL 和框的 ID,因此当您刷新时它也将起作用。

关于javascript - 为什么 HTML anchor 不能更改 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18397367/

相关文章:

javascript - 如何才能只在系统浏览器而不是 NW.js 浏览器窗口中打开*某些*链接?

基于 Javascript 组件的游戏设计

javascript - Angular JS 将 html 发送到数据库

html - 在字段集中定位复选框的标签

CSS定位元素彼此相邻

javascript - 在 GitHub README.md 中嵌入 JavaScript

javascript - HTML5 地理定位不等待用户输入

html - Css 下拉菜单 z-index 问题

java - JSF 不工作 : Select SelectOneMenu And Dynamically Update Other SelectOneMenu With Ajax

CSS Sprite 问题