我使用的是一个非常简单的jQuery手风琴脚本,但我想要实现的是一种在页面加载时以编程方式打开菜单项的方法。最终,当用户直接浏览子菜单中的页面时,该菜单将打开以识别它们的位置。我只是无法弄清楚如何在负载时触发开启...任何帮助表示赞赏。
scope[attrs.ngModel]=Val
答案 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)
您必须使用location
或pathname
(由您决定)才能将当前页面与您的手风琴HREFs
进行比较。
添加了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以模拟点击