“next” - 基于哈希网址的链接。 (JavaScript的)

时间:2014-03-05 19:49:07

标签: javascript jquery

我是javascript的新手,并且有一个链接列表作为菜单,最后一个按钮是一个下一个按钮,谁将根据你在哪个页面或#hash进入下一个链接目前。

    <li><a class="menu" href="#home"><div>Home</a></li>
    <li><a class="menu" href="#work">Work</a></li>
    <li><a class="menu" href="#about">About</a></li>
    <li><a class="menu" href="#">Next</a></li>

因此,如果您在工作页面上,则下一个按钮会将您发送到about页面,如果您在about页面上,它会将您发送到主页。

我想它与数组和一些javascript有关,因为它必须现场工作,但不知道该怎么做。

希望有人可以解释或给我一个提示。

提前致谢!

1 个答案:

答案 0 :(得分:1)

这很简单,不需要任何额外的数组:

$("#next").on("click", function (e) {
    e.preventDefault();
    var currentLink = location.hash ? $("a.menu[href=" + location.hash + "]") : null,
        next = currentLink ? currentLink.parent().next() : null;
    if (!next || next.children().attr("id") == "next") {
        next = $("a.menu").first().parent();
    }
    if (next) {
        location.hash = next.children().attr("href");
    }
});

(我已经给出了“下一个”链接ID next以使其易于定位。)

它的作用:

如果location.hash包含值,则会尝试查找a.menu元素与href。{ 如果发现它,它将获得下一个LI。 如果找不到任何内容,或找到的LI包含a:next链接,则会获得第一个LI

最后,它会将找到的href(如果有)第一个孩子的LI值分配给location.hash

请在此处查看全屏版本以实际查看哈希更改:http://jsfiddle.net/ve9qt/3/show/http://jsfiddle.net/ve9qt/3/以获取完整代码。