根据事件替换类

Replace class depending on event

本文关键字:替换 事件      更新时间:2023-09-26

如果有一组可折叠的元素,我需要替换类leftright取决于事件isCollapse:

<div class="collapsible-set">
  <div class="collapsible">
      <h3>
        <a class="left">
           <span class="left"></span>
        </a>
      </h3>
  </div>
  <div class="collapsible">
      <h3>
        <a class="right">
           <span class="right"></span>
        </a>
      </h3>
  </div>
</div>

我需要切换类。有没有比我的方法更简单的方法?

if (collapse) {
  $('.left').addClass('topLeft').removeClass('left');
  $('.right').addClass('topRight').removeClass('right');
  } else if (!collapse) {
    $('.topLeft').addClass('left').removeClass('topLeft');
    $('.topRight').addClass('right').removeClass('topRight');
    }

一定有更简单的方法来做到这一点,而不用写这么多代码…

查看toogleClass http://api.jquery.com/toggleClass/

$('.collapsible:eq(0)').find('a').toggleClass('topLeft').toggleClass('left');
$('.collapsible:eq(1)').find('a').toggleClass('topRight').toggleClass('right');

应该可以了

$(".collapsible").find(".topLeft, .left").toggleClass("topLeft", collapse).toggleClass("left", !collapse);
$(".collapsible").find(".topRight, .right").toggleClass("topRight", collapse).toggleClass("right", !collapse);