如何以编程方式打开我的手风琴菜单

时间:2015-09-01 13:43:12

标签: javascript jquery accordion

我使用的是一个非常简单的jQuery手风琴脚本,但我想要实现的是一种在页面加载时以编程方式打开菜单项的方法。最终,当用户直接浏览子菜单中的页面时,该菜单将打开以识别它们的位置。我只是无法弄清楚如何在负载时触发开启...任何帮助表示赞赏。

scope[attrs.ngModel]=Val

3 个答案:

答案 0 :(得分:3)

您可以手动将活动类应用于元素,然后在文档准备就绪时使用 active 类滑动元素。例如:

在HTML中:

.main { display: flex; justify-content: space-between; }
.a, .b, .c { background: #efefef; border: 1px solid #999; }

在Javascript部分:

<li><a href="#" class="activate-on-load">Menu 3</a>
  <ul>
    <li><a href="#">Sub-Item 4 a</a></li>
    <li><a href="#">Sub-Item 4 b</a></li>
    <li><a href="#">Sub-Item 4 c</a></li>
  </ul>
</li>

这应该有用。

我还建议为这些菜单元素添加其他类,而不是使用这些复杂的选择器。

答案 1 :(得分:1)

只需将代码置于$(document).ready(function() { ... });内即可使其在加载时运行(文档准备就绪后)。要打开正确的手风琴,您可以使用window.location获取您的网址,以确定用户所在的页面并相应地打开手风琴。

通过在菜单中添加id,您可以轻松选择并打开它。

答案 2 :(得分:1)

您必须使用locationpathname(由您决定)才能将当前页面与您的手风琴HREFs进行比较。

Here is an exemple

添加了JS:

var pagePath = window.location.pathname; // To be used
var splitedPath = pagePath.split("/"); //Split to match your href formating


//Find A tag that match your path, find its parent UL and the A tag before (the one which has click event);
$("#nav > li > ul > li > a[href='" + splitedPath[splitedPath.length - 1] + "']").closest("ul").prev("a").trigger("click");
  • 首先获取位置/路径名

  • 拆分它以匹配您当前的href格式

  • 选择父A以模拟点击