【问题标题】:Dynamic breadcrumb based on current page using Javascript/jQuery使用 Javascript/jQuery 基于当前页面的动态面包屑
【发布时间】:2014-09-15 09:02:02
【问题描述】:

我已经查看了here 的问题,如果不需要实际导航,答案看起来已经足够好了。

我需要一个 Javascript/jQuery 脚本,它基于当前页面的 URL,可以使用该页面的父级 IE 创建面包屑:

 <nav class="items">
 <ul>
 <li><a href="test.html">Test 1</a></li>
 <li><a href="test2.html">Test 2</a>
    <ul>
        <li><a href="level1.html">Level 1</a></li>
        <li><a href="test/level2.html">Level 2</a>
            <ul>
                <li><a href="test/level2/level3.html">Level 3</a></li>
                <li><a href="test/level2/level32.html">Also at level 3</a></li>
            </ul>
      </li>
    </ul>
 </li>
 <li><a href="test3.html">Test 3</a></li>
</ul>
</nav>

如果用户导航到第 3 级,基于当前页面,显示:

首页 >> 测试2 >> 2级 >> 3级

此脚本将包含在每个页面中,因此它可以在加载时运行。

【问题讨论】:

标签: jquery html breadcrumbs


【解决方案1】:

您可以在页面的文档就绪事件中尝试以下代码。

var url = "level3.html"; <-- following line shows how to get this from url
//location.pathname.substring(location.pathname.lastIndexOf("/") + 1);
var currentItem = $(".items").find("[href$='" + url + "']");
var path = "home";
$(currentItem.parents("li").get().reverse()).each(function () {
    path += "/" + $(this).children("a").text();
});
$(".bredcrumb").html(path);

Demo

如果你想要带有导航链接的面包屑,试试这个Demo

【讨论】:

  • 太棒了,这很到位!我在 Home 之后得到了一个额外的 /,但它可能只是我的 html,因此我可以解决这个问题。谢谢!
  • 这很棒。我正在使用这个递归函数研究引导面包屑样式。
【解决方案2】:

如果您要在 http 请求上导航,此代码可能不适合您。

如果您要通过此菜单导航 html 页面;您可能有一些代码在加载您拥有的每个 html 页面,以根据该页面构建面包屑。

但是,如果您要通过 ajax 导航内容,则可以使用此代码。并将您的内容加载功能放在点击事件中。

【讨论】:

  • 我正在考虑的 javascript 将在每个负载上工作,不会使用 ajax。
  • 您是在构建一个 html 站点还是使用任何服务器端编程,您可以传递当前页面的信息来创建面包屑?
  • 尝试创建一个独立的 top-html,它将包含在具有服务器端编程后端的应用程序和 wordpress 实例中。这就是为什么我希望它是 javascript。我知道可以使用 $(location).attr('href'); 获取当前页面; .因此,它将遍历 ul 以找到与我当前正在查看的 URL 相似的 URL。
  • 检查一下这个小提琴jsfiddle.net/rpyxcbok/2,如果我猜对了,就可以了。
  • 谢谢,好小提琴 :) 更近了一步,但它不适用于手头的文件结构。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-09
  • 2012-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多