[英]How to Control the toggle with anchor tag with href
我正在使用左侧菜单中的Jquery进行折叠和展开功能。
在这里,当用户单击“父项”时,要显示带有网址的锚标记的“管理员”和“帐户”。 到目前为止,一切正常。
如果用户单击“管理员”,它将崩溃并显示根元素“父对象”。
如何在这里固定结构。
$(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>
没有锚标记,它将正常工作,但是当我在URL中包含锚标记时,li上的“ stopPropagation”事件将失败。 这使其折叠到根元素。
如果用户单击“管理员”,它将以以下形式折叠到根目录
.Parent
如何保持结构如下
.Parent
.Admin
.Account
尝试类似
$('div.toggle').hide();
$('ul.product-info li a').click(function(event) {
event.preventDefault();
$(this).next('div').slideToggle(200);
});
这是jQuery文档中有关该页面的页面:
$(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。
好吧,下面是它的工作代码。
$(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>
希望这对您有帮助:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.