[英]Prevent child element from collapsing with twitter bootstrap
我有以下清单:
根应该是可折叠的,但不能折叠。 使用以下代码,如果我单击其中之一,它们都将崩溃。 我该如何防止儿童倒塌?
<li data-toggle="collapse" data-target="#root"><a href="#">Root</a>
<ul class="nav nav-list collapse" id="root">
<li><a href="some_url">Child1</a></li>
<li><a href="some_url">Child2</a></li>
</ul>
</li>
编辑:更好的方法来描述我想要的。
jsfiddle: http : //jsfiddle.net/MgcDU/4537/
将data-toggle
和data-target
属性移至a
元素,例如
<li><a href="#" data-toggle="collapse" data-target="#root">Root</a>
<ul class="nav nav-list collapse" id="root">
<li><a href="#">Child1</a></li>
<li><a href="#">Child2</a></li>
</ul>
</li>
将它们放在最顶层的li
元素中会使该元素及其所有子元素捕获click事件并触发崩溃。 将属性放在子元素上会将单击事件的处理范围限制为仅该元素(及其子元素)。
我相信您要执行的操作是防止#root
的子级li
被单击时使其最小化? 如果是这样,您正在寻找的是event.stopPropogation 。
尝试将以下代码添加到您的JSFiddle中:
$('ul > li').on('click', function(e) { e.stopPropagation(); });
这以子li
元素为目标,并通过折叠属性防止其单击事件冒泡到父li
。
$("#root a").click(function (e) {
return false;
});
由于li
标签是ul#root
后代,因此如果不折叠子li
元素,则无法折叠root。 当root折叠时,子li
标签将不可见。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.