根据事件替换类

时间:2011-12-17 14:44:10

标签: javascript jquery

如果有一组可折叠元素,我需要根据事件 isCollapse 替换类 left right

<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');
    }

如果没有编写如此多的代码,必须有一种更好的方法来实现这一目标......

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

这应该可以解决问题

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