Jquery addRemove类 - 如果语句

时间:2013-01-23 01:06:05

标签: jquery addclass removeclass

我需要点击Toggle以获取jQuery以删除.hidesome并将其更改为.show,反之亦然。

无法得到这个...已经过了4个小时的搜索。

<a href="#" class="button">Toggle</a>
<div class="signatureContain">
<div class="signature hidesome">
    When the button above is pressed you should see the rest<br />
    "the rest"
</div>
</div>

<a href="#" class="button">Toggle</a>
<div class="signatureContain">
<div class="signature hidesome">
    When the button above is pressed you should see the rest<br />
    "the rest"
</div>
</div>


('.signatureContain').live('click',function(){
      if ($(this).hasClass('hidesome'))
      {
         $(this).removeClass('hidesome');
         $(this).addClass('show');
      } else
      {
         $(this).removeClass('show')
         $(this).addClass('hidesome');
      }
});


.hidesome{ height:20px;overflow:hidden}
.show{ height:auto }

http://jsfiddle.net/w3Hg3/

3 个答案:

答案 0 :(得分:2)

您可以使用.toggleClass,但我认为您在其余的代码中有点偏差。您可能希望绑定到.signatureContain并找到兄弟 .button,然后找到其.signatureContain子项,而不是绑定到.signature。你也错过了$。我在这里解决了所有问题:

http://jsfiddle.net/w3Hg3/3/

.toggleClass版本:http://jsfiddle.net/w3Hg3/5/

答案 1 :(得分:1)

使用toggleClass方法。

$('.signatureContain').on('click', function(event){
    $(this).toggleClass("hidesome show");
});

答案 2 :(得分:0)

请记住将事件侦听器设置为按钮而不是容器.signatureContain

$('a.button').on('click',function(){
    $(this).next('.signatureContain').children('.signature').toggleClass('show');
});

.on在性能上优于现场:http://www.jquery4u.com/jquery-functions/on-vs-live-review/

通过使用孩子,你可以比使用find更具体。

DEMO:http://jsfiddle.net/3H4ym/