我正在使用左侧菜单中的Jquery处理折叠和展开功能。
此处,当用户点击“Parent”时,想要使用带有url的锚标记显示“Admin”和“Account”。它一直工作到这一点。
如果用户点击“管理员”,则会折叠并显示根元素“父级”。
如何在这里举行结构。
$(document).ready(function() {
$('ul.child').hide();
$('li:has(.child)').click(function() {
$('ul',this).toggle('slow');
});
$('li').click(function(event) {
event.stopPropagation();
});
<nav id="nav">
<ul>
<li>
<a>Parent</a>
<ul class-"child">
<li class="child"><a href="/Home/Admin">Admin</a></li>
<li class="child"><a href="/Home/Account">Account</a></li>
</ul>
</li>
</ul>
</nav>
如果没有锚标记,它将正常工作,但是当我将锚标记包含在网址中时,li上的“stopPropagation”事件将失败。这使它崩溃到根元素。
如果用户点击管理员,则会以
的形式折叠到根目录.Parent
如何保持结构如下
.Parent
.Admin
.Account
答案 0 :(得分:0)
尝试类似
的内容$('div.toggle').hide();
$('ul.product-info li a').click(function(event) {
event.preventDefault();
$(this).next('div').slideToggle(200);
});
以下是jQuery文档中的相关页面:
答案 1 :(得分:0)
$(document).ready(function() {
$('ul.child').hide();
$('.parent').click(function() {
$('ul.child',this.parent).toggle('slow');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav id="nav">
<ul>
<li>
<a class="parent">Parent</a>
<ul class="child">
<li><a href="#/Home/Admin">Admin</a></li>
<li><a href="#/Home/Account">Account</a></li>
</ul>
</li>
</ul>
</nav>
这应该有效。 您的问题是,当您点击li时,您之前点击了父li。
答案 2 :(得分:0)
嗯,下面是它的工作代码。
$(document).ready(function() {
$('ul.child').hide();
$('li:has(.child)').click(function() {
$('ul',this).toggle('slow');
});
$('li').click(function(event) {
event.stopPropagation();
});
});
a{
color: blue;
text-decoration: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav id="nav">
<ul>
<li>
<a>Parent</a>
<ul class="child">
<li class="child"><a href="/Home/Admin">Admin</a></li>
<li class="child"><a href="/Home/Account">Account</a></li>
</ul>
</li>
</ul>
</nav>
希望这会对您有所帮助:)
答案 3 :(得分:0)
据我所知,你点击&#34; Admin&#34;或者&#34;帐户&#34;,它将重定向到相应的页面,并且当您想要打开它所在的层次结构时。
在这种情况下,您可以做的是,将当前网址与层次结构中的每个标记进行比较,并比较网址。 window.location.pathname
可用于获取要比较的路径,each可循环显示a标记。如果您对此仍有疑问,请告诉我。