阻止javascript关闭打开的折叠列表
stop javascript from closing an open collapsed list
下面有一个简单的java脚本,可以打开和关闭一个可折叠的列表。列表中有链接,当您单击打开新窗口的链接时,列表会折叠。我想在点击这样的链接时保持列表打开。
Java脚本
function dropDown(li) {
var submenu = li.getElementsByTagName('ul')[0];
var x = "de" + li.id;
if (submenu) {
submenu.style.display = submenu.style.display == "block" ? "" : "block";
}
if (document.getElementById(x).getAttribute('src') == "plus.gif") {
document.getElementById(x).src = "minus.gif";
} else if (document.getElementById(x).getAttribute('src') == "minus.gif") {
document.getElementById(x).src = "plus.gif";
}
}
我的HTML
<ul class="doclist">
<li onClick="dropDown(this);" id="1"> <a><image src="plus.gif" width="10" id="de1"> <b>My Reports</b></a>
<ul>
<li>
<A HREF="report1.pdf" TARGET="new"><B>Report 1</B></A></li>
</ul>
</li>
<P>
<li onClick="dropDown(this);" id="2">
<a><image src="plus.gif" width="10" id="de2"> <b>Other Reports</b></a>
<ul>
<li>
<A HREF="report20.pdf" TARGET="new"><B>Report 20</B></A></li>
<li> <A HREF="report21.pdf" TARGET="new"><B>Report 21</B></A></li>
</ul>
</li>
</ul>
我的CSS
ul.doclist li ul {
display: none;
}
jsfiddle上的示例-https://jsfiddle.net/cb49747/ka13kyee/
答案是将其添加到列表中的每个链接中。
onClick="event.stopPropagation();"
所以链接现在看起来是这样的。
<A HREF="report20.pdf" TARGET="new" onClick="event.stopPropagation();"><B>Report 20</B></A>
感谢普鲁斯,他让我走上了正轨。另一个注意事项是,这只适用于W3C兼容的浏览器。另一种选择是使用它。
event.cancelBubble = true;
但请注意,这还没有经过测试。
相关文章:
- jQuery与可折叠列表冲突
- 阻止javascript关闭打开的折叠列表
- 更高效的可折叠列表定位
- 使用 JavaScript 在 HTML 中展开/折叠列表
- 纯 js 中的可折叠列表优化
- 使用jQuery可折叠列表 - 如何更新展开/折叠全部按钮
- jQuery mobile折叠列表视图,搜索不起作用
- Javascript可折叠列表和xsl
- $(文档).(“click" . .如何在单击文档的其他位置时折叠列表
- Jquery动态折叠列表不起作用;jsfiddle例子
- 使用移动版jquery和cordova时,可折叠列表视图的头部不能刷新
- 如何展开和折叠列表
- 在Wordpress生成的表单中展开和折叠列表元素的奇怪问题
- 需要消失的其他按钮折叠列表,一旦一个按钮被按下
- 如何获得一个Jquery移动按钮打开特定的可折叠列表Id
- 复选框在折叠列表中无法选中
- 如何用jQuery折叠列表中的元素?
- 使用JQuery折叠列表
- 使用jquery折叠列表
- 具有动态加载内容的可折叠列表