JQuery添加/删除类onClick

JQuery添加/删除类onClick,jquery,Jquery,点击时打开子菜单,下次点击时关闭-这就是我想要实现的。示例为(“跟随”链接下的子菜单)。 它打开子菜单(添加类“打开”),但不关闭。结巴…:( $('#toggle li').on('click', function () { $(this).toggleClass('open') }); $(document).ready(function(){ $('#toggle li').on('click', function(){ $(this).toggleClass('o

点击时打开子菜单,下次点击时关闭-这就是我想要实现的。示例为(“跟随”链接下的子菜单)。
它打开子菜单(添加类“打开”),但不关闭。结巴…:(

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
我的html:

<ul id="toggle"><li>
<a href="#">Menu</a>
<ul id="dropdown" class="dropdown-menu" role="menu">
<li><a href="#">2017</a></li>
<li><a href="#">2012</a></li>
<li><a href="#">2003</a></li>
</ul>
</li>
<li><a href="#">Contact</a></li>
</ul>    
$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});

使用
切换类

$(document).ready(function(){
  $('#toggle li').on('click', function(){
  $(this).toggleClass('open');
});
});
$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});

您需要的是以下功能:

$(document).ready(function(){
    $('#toggle li').on('click', function(){
        $(this).toggleClass('open')('open');
    });
});
$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
退房:)

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
您所做的错误是,您链接了添加和删除函数:

$(this).removeClass('open').addClass('open');
$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});

这样做的目的是删除类“open”,然后(当找到时)再次添加类“open”。这导致类不会消失。

您可以使用函数
toggleClass()
来实现以下目的:

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
这里有一个稍微不同的方法:

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
jQuery

$('#toggle li').on('click', function () {
     $(this).find('ul').slideToggle();
 });
$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
CSS

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
要防止重定向,必须使用
.preventDefault()

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
我不确定这是最干净还是最好的方法,但它正在发挥作用

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
如果要保存url以供进一步使用(例如,通过
窗口.location
重定向),可以将href属性分配给变量:

var href = $(this).find('a').attr('href');
$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
参考

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});

这是因为您先删除类,然后再添加它…因此它将始终被添加

$(this).removeClass('open');
$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
关闭它

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
用这个代替

$(document).ready(function(){
$('#toggle li').on('click', function(){
$(this).toggleClass('open');
});
});
$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
在jquery中使用函数

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
使用toggleClass()函数

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});

只需执行以下操作:

$('#toggle li').on('click', function () {
    $(this).toggleClass('open')
});
$(document).ready(function(){
  $('#toggle li').on('click', function(){
     $(this).toggleClass('open');
  });
});
$(document).ready(function(){
    $('#toggle li').on('click', function(){
         $(this).toggleClass('open');
    });
});

7个答案,所有答案都建议
toggleClass
,有人留下了吗?可能是@Vohuman的副本,不是全部;-),至少我非常喜欢这种“不同的方式”来回答我的问题。我会使用它。但是,我想“进一步开发”。在我的手写html代码中,锚定标记没有url,但通常有:'
  • myhomepage.com/somecategory>Menu
      …”因此,我的问题是:单击时,如果anchor有url,如何“强制”打开子菜单而不转到该url?@Gallex如果其中一个答案对您有所帮助,请随意接受任何有点仓促、还不精彩的内容。现在所有的锚都没有重定向,但我只需要这个锚,它在子菜单中有子菜单[链接]锚,也需要重定向是的,子菜单锚现在工作,但主菜单不工作
      $('#toggle li').on('click', function () {
          $(this).toggleClass('open')
      });
      
      $(document).ready(function(){
        $('#toggle li').on('click', function(){
           $(this).toggleClass('open');
        });
      });