首页 > 解决方案 > 有没有办法在使用 jQuery 的第二次点击时添加不同的操作?

问题描述

我目前的代码是这样的:

$('.how-we-menu').on('click', function() {
  $('.how-we-menu > ul').slideDown();
  $('.under').on('click', function() {
    $('.under > ul').slideDown();
  })
  $('.over').on('click', function() {
    $('.over > ul').slideDown();
  })
  $('.ar').on('click', function() {
    $('.ar > ul').slideDown();
  })
  $('.fc').on('click', function() {
    $(this).children('ul').slideToggle();
  })
});

我试图避免滑动切换,因为它会影响另一个元素并将它们都向上滑动,所以我想让每个元素单独工作。因此,当您单击“.fc > ul”时,它会向下滑动,当您再次单击时,它会向上滑动。

我希望这是有道理的谢谢!

标签: javascriptjquery

解决方案


在函数中使用$(this),因此它只影响您单击的元素。

$('.fc').on('click', function() {
    $(this).children('ul').slideToggle();
});

并且所有事件处理程序都应该在顶层,而不是在另一个事件处理程序内。由于它们都做同样的事情,您可以一次绑定它们。

$('.how-we-menu, .under, .over, .ar, .fc').on('click', function() {
  $(this).children('ul').slideToggle();
});


推荐阅读