javascript - jQuery - 切换单击两次

标签 javascript jquery wordpress

这是我的代码(切换菜单):

$(function () {
    $('#menu li').click(function () {
        $('#menu li').removeClass("active");
        $(this).toggleClass("active");
    });
})      

工作完美。但是...如果我单击一个元素并再次单击它,切换不会关闭。我希望菜单在第二次单击后关闭。

$(function () {
    $('#menu li').click(function () {
        $(this).toggleClass("active");
    });
})      

如果我这样做,菜单会在第二次单击后关闭,但是...我可以展开其他菜单,而前一个菜单不会关闭。

如何结合这两种功能?

最佳答案

从所有其他 li 元素中删除该类时,只需通过链接 .not() 排除您刚刚单击的类即可。使用 this 作为参数的函数:

$(function () {
    $('#menu li').click(function () {
        $('#menu li').not(this).removeClass("active");
        $(this).toggleClass("active");
    });
})    
.active {
  color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="menu">
  <li>1</li>
  <li>2</li>
  <li>3</li>
</ul>

关于javascript - jQuery - 切换单击两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68301696/

相关文章:

javascript - jQuery:克隆元素和事件

php - 下拉菜单的默认值 - WordPress 网站

javascript - 在 Wordpress 中直接使用纯 JWPlayer (JS) (不是 WP 插件)

php - WooCommerce 订阅取消电子邮件给客户

javascript - 选择第一个选择框后,根据第一个选择结果显示第二个结果。但 POST 时没有得到任何结果

javascript - 使用 jQuery 通过 .each() 获取数据属性值

javascript - 检测 XMLHttpRequest 何时连接

javascript - 需要在 Javascript URL 中获取 IR 报告 ID,这会在 Oracle Apex 5.1 中打开浏览器窗口

javascript - 一个类中存在重复的 div,然后删除重复的 div

javascript - OnRowEditing 编辑文本框焦点