【问题标题】:Remove the active class when we click当我们单击时删除活动类
【发布时间】:2017-03-13 22:27:48
【问题描述】:

我想在单击元素时删除class="active"。我有found,我们可以这样做:

$('#menu li').on('click', function(){
        $("#menu").hide();
        $("#menu-icon").removeClass("active");
    });

所以我的结构:

我试过这段代码:

$('.nav side-menu li').on('click', function(){
        $(".nav side-menu li").removeClass("active");
});

但是什么也没发生,我做错了什么?

[编辑] 我认为问题来自于选择 HTML 元素的方式 这就是菜单的 HTML:

<!-- sidebar menu -->
<div id="sidebar-menu" class="main_menu_side hidden-print main_menu">
 <div class="menu_section">
  <h3>General</h3>
   <ul class="nav side-menu">
    <li><a><i class="fa fa-desktop"></i> Docker machines <span class="fa fa-chevron-down"></span></a>
    <ul class="nav child_menu">
    <li><a class="itemsMenu" href="/">All Docker machines</a></li>
    </ul>
    </li>
    <li><a><i class="fa fa-table"></i> Docker containers <span class="fa fa-chevron-down"></span></a>
    <ul class="nav child_menu">
    <li><a class="itemsMenu" href="/">All containers</a></li>
    </ul>
   </li>
    <li><a><i class="fa fa-bar-chart-o"></i> Data Presentation <span class="fa fa-chevron-down"></span></a>
   <ul class="nav child_menu">
   <li><a class="itemsMenu" href="/dataGraph">Grafana monitoring</a>         </li>
   </ul>
   </li>
 </ul>
</div>

我正在使用流星

【问题讨论】:

  • 您是否缺少“。”在side-menu前面?
  • 试试$(this).removeClass("active");
  • @G0dsquad 它什么也没改变 :(
  • 请点击&lt;&gt; sn-p 编辑器并提供minimal reproducible example
  • @mplungjan 我做不到,因为它使用了太多其他东西(custom.js、font-awesome 等),我的意思是我做不到

标签: javascript jquery meteor menu


【解决方案1】:

您的选择器不会按预期工作,您需要将它们组合起来,尽管使用this 来引用点击的元素。

$('.nav.side-menu li').on('click', function(){
   $(this)
     .removeClass("active")
     // get the nested children and hide
     .find('ul') 
     .hide();
});

【讨论】:

  • (我不是反对者)您的解决方案没有任何反应
  • @Jerome : 元素是动态生成的吗?\
  • 我在编辑中发布了代码,不,它是静态的,我认为 $('.nav.side-menu li) 不起作用或者我的 HTML 结构有问题
  • @Jerome:你想用处理程序实现什么??
  • 当我点击&lt;li&gt;&lt;a class="itemsMenu" href="/"&gt;Something&lt;/a&gt;&lt;/li&gt;时,我想删除类active
【解决方案2】:
$('.nav.side-menu li').each(function(){
  $(this).on('click', function(){
    $(this).removeClass('active');
  });
});

$('.nav.side-menu li') 返回一个列表元素数组。如果您在 click 函数中选择它,您将再次拥有一个数组,但它不起作用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    相关资源
    最近更新 更多