【发布时间】:2021-04-28 19:50:54
【问题描述】:
你能帮我看看这段代码吗?
$(document).ready(function(){
/* Panel Slide */
var btn = document.getElementsByClassName("btnBorder");
var i;
for (i = 0; i < btn.length; i++) {
var panel = btn[i].nextSibling;
btn[i].addEventListener("click", function() {
$(".btnBorder").hide();
panel.show();
});
}
});
<div id="menu" class="sector-row">
<ul>
<li>
<div class="btnBorder flex">Logo <i class="ml-auto fa fa-angle-right"></i></div>
<ul class="slide-panel">
demo
</ul>
</li>
<li>
<div class="btnBorder flex">Navigazione <i class="ml-auto fa fa-angle-right"></i></div>
</li>
<li>
<div class="btnBorder flex">Widgets <i class="ml-auto fa fa-angle-right"></i></div>
</li>
<li>
<div class="btnBorder flex">Footer <i class="ml-auto fa fa-angle-right"></i></div>
</li>
</ul>
</div>
我想制作一个多级菜单幻灯片,但“幻灯片面板”元素没有显示...
【问题讨论】:
-
幻灯片面板是另一个 ul 元素中的 ul 元素吗?你点击什么来让这个 ul 元素显示出来?看起来您试图在 4 个 div 上添加一个类名为 btnBorder 的事件侦听器? panel.show() 有什么作用?
-
如您所见,如果我单击按钮 btnBorder 我需要将元素 ul 显示为该按钮的下一个元素。
-
那么,panel 是每个按钮的 nextSibling 吗?试试console.log(面板)有没有报错信息?
-
是的:panel.show() 不是函数
-
这应该对你有帮助。你需要一个 show() 函数...
标签: javascript jquery css menu