使用 JavaScript 在 HTML 中展开/折叠列表
Expand/Collapse List in HTML with JavaScript
朋友们,我正在研究JavaScript的折叠/展开<UL>
列表。这是我的代码。我想在它上面工作,在第N级,我可以展示孩子,但它没有隐藏孩子。 我希望你们能帮助我..提前致谢...
这将解决问题:
event.stopPropagation();
文档。
如果调试代码,您将看到正在为每个父ul
调用该事件。看看这个:
$("#ExpList ul li:has(ul)").click(function(event) {
event.stopPropagation();
$(this).find('> ul')
.toggleClass("hiddenChild")
.toggleClass("displayChild");
});
和 HTML:
<div id='ExpList'>
<ul>
<li>Platform-1
<ul class='hiddenChild'>
<li>Child-1
<ul class='hiddenChild'>
<li>P-C-C-1</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
小提琴。
HTML注意事项:
我不知道您是否可以使用
div
包装整个列表,但我认为这样做更有意义;您对所有
ul
都使用 idExpList
。这不是我们使用id
的方式。相反,对于选择许多元素,请使用自己的标签或公共类;我删除了所有
ul
中都存在的onClick = openChild()
。这是在你的小提琴中抛出了一个错误。
JavaScript 注意事项:
您不必将选择器与查找方式混合使用
$("#ExpList").find('li:has(ul)')
.您可以像我$("#ExpList ul li:has(ul)")
一样在同一个选择器上使用它;您不需要搜索所有
ul
子项($(this).children('ul')
),因为您只有一个,我使用了这个,它只查找一个:$(this).find('> ul')
;如前所述,
event.stopPropagation()
可以解决问题。您无需在所有父ul
上触发click
事件。
在 CSS 中,我只是将#ExpList
更改为此#ExpList ul
以在新结构中工作。我希望它有所帮助。
相关文章:
- jQuery与可折叠列表冲突
- 阻止javascript关闭打开的折叠列表
- 更高效的可折叠列表定位
- 使用 JavaScript 在 HTML 中展开/折叠列表
- 纯 js 中的可折叠列表优化
- 使用jQuery可折叠列表 - 如何更新展开/折叠全部按钮
- jQuery mobile折叠列表视图,搜索不起作用
- Javascript可折叠列表和xsl
- $(文档).(“click" . .如何在单击文档的其他位置时折叠列表
- Jquery动态折叠列表不起作用;jsfiddle例子
- 使用移动版jquery和cordova时,可折叠列表视图的头部不能刷新
- 如何展开和折叠列表
- 在Wordpress生成的表单中展开和折叠列表元素的奇怪问题
- 需要消失的其他按钮折叠列表,一旦一个按钮被按下
- 如何获得一个Jquery移动按钮打开特定的可折叠列表Id
- 复选框在折叠列表中无法选中
- 如何用jQuery折叠列表中的元素?
- 使用JQuery折叠列表
- 使用jquery折叠列表
- 具有动态加载内容的可折叠列表