jquery - 有没有更简洁的方法来编写这个 jQuery 下拉代码?
问题描述
我有一个工作正常的 jQuery 函数(如下)。它用于在单击事件上触发的下拉按钮。我正在寻找一种方法来清理代码并使其更简单。谢谢。
jQuery
$("#dropbtn1").click(function() {
$(".dropdown-content1").toggleClass("show-dropdown");
$(".dropdown-content2, .dropdown-content3").removeClass("show-dropdown");
});
$("#dropbtn2").click(function() {
$(".dropdown-content2").toggleClass("show-dropdown");
$(".dropdown-content1, .dropdown-content3").removeClass("show-dropdown");
});
$("#dropbtn3").click(function() {
$(".dropdown-content3").toggleClass("show-dropdown");
$(".dropdown-content1, .dropdown-content2").removeClass("show-dropdown");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="dropdown">
<li><button id="dropbtn1" type="button">Dropdown</button>
<div class="menu dropdown-content1">
<a href="#home">Home</a>
<a href="#about">About</a>
<a href="#contact">Contact</a>
</div>
</li>
<li><button id="dropbtn2" type="button">Dropdown</button>
<div class="menu dropdown-content2">
<a href="#home">Home</a>
<a href="#about">About</a>
<a href="#contact">Contact</a>
</div>
</li>
<li><button id="dropbtn3" type="button">Dropdown</button>
<div class="menu dropdown-content3">
<a href="#home">Home</a>
<a href="#about">About</a>
<a href="#contact">Contact</a>
</div>
</li>
</ul>
解决方案
为每个下拉按钮添加一个类并将代码更改为
<ul class="dropdown">
<li><button id="dropbtn1" type="button" class="drop-btn">Dropdown</button>
<div class="menu dropdown-content1">
<a href="#home">Home</a>
<a href="#about">About</a>
<a href="#contact">Contact</a>
</div>
</li>
<li><button id="dropbtn2" type="button" class="drop-btn">Dropdown</button>
<div class="menu dropdown-content2">
<a href="#home">Home</a>
<a href="#about">About</a>
<a href="#contact">Contact</a>
</div>
</li>
<li><button id="dropbtn3" type="button" class="drop-btn">Dropdown</button>
<div class="menu dropdown-content3">
<a href="#home">Home</a>
<a href="#about">About</a>
<a href="#contact">Contact</a>
</div>
</li>
</ul>
然后你可以把js写成
$(".drop-btn").click (function() {
$(".menu").hide();
$(this).siblings('.menu').toggle();
});
和一点 CSS
.menu{
display:none;
}
检查这个小提琴
更新
$(".drop-btn").click (function() {
$(this).siblings('.menu').toggle();
});
删除$('.menu').hide()
以根据您的要求使用户切换工作。检查这个更新的小提琴
推荐阅读
- netlogo - 当创建额外的海龟时,海龟自己的变量值在不应该增加时增加
- node.js - 在生产服务器上部署时使用 socket.io 的聊天应用程序未连接
- highcharts - 如何在高图中的图例上悬停时禁用系列低不透明度状态?
- python - python将每小时数据[1-24]添加到日期时间数据
- angular - Angular 7 - 由于`模块解析失败:意外字符'@'`出现错误如何解决这个问题?
- django - 如何在 Django 中创建轮换日志?
- string - 通过 Startindex 和 Endindex 获取字符串的子字符串
- postgresql - jOOQ 不使用自定义数据绑定
- mysql - 如何在 VBA 中获取“yyyy/MM/dd hh:mm:ss.fff”格式的时间戳?
- powershell - 通过 PowerShell 的 DB2 ODBC