Jquery addRemove类-If语句

Jquery addRemove类-If语句,jquery,addclass,removeclass,Jquery,Addclass,Removeclass,我需要在单击切换时将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<

我需要在单击切换时将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 }

按下上面的按钮时,您应该可以看到其余的按钮
“其余的” 按下上面的按钮时,您应该可以看到其余的按钮
“其余的” ('.signatureContain').live('click',function(){ if($(this.hasClass('hidesome')) { $(this.removeClass('hidesome'); $(this.addClass('show'); }否则 { $(this.removeClass('show')) $(this.addClass('hidesome'); } }); .hidesome{高度:20px;溢出:隐藏} .show{height:auto}
使用该方法

使用该方法


您可以使用
.toggleClass
,但我认为您对代码的其余部分有点不了解。您可能不想绑定到
.signatureContain
而是想绑定到
.button
并找到同级
.signatureContain
,然后找到它的
.signature
子级。您还缺少
$
。我在这里解决了所有问题:


.toggleClass
版本:

您可以使用
.toggleClass
,但我认为您对代码的其余部分有点不熟悉。您可能不想绑定到
.signatureContain
而是想绑定到
.button
并找到同级
.signatureContain
,然后找到它的
.signature
子级。您还缺少
$
。我在这里解决了所有问题:


.toggleClass
版本:

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

$('a.button').on('click',function(){
    $(this).next('.signatureContain').children('.signature').toggleClass('show');
});
。on的性能优于live:

通过使用子项,您可以比使用find更具体


演示:

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

$('a.button').on('click',function(){
    $(this).next('.signatureContain').children('.signature').toggleClass('show');
});
。on的性能优于live:

通过使用子项,您可以比使用find更具体


演示:

从jQuery 1.7开始,
.live()
方法已被弃用。使用
.on()
附加事件处理程序。较旧版本的jQuery用户应优先使用
.delegate()
,而不是
.live()
。选择器开头缺少$:$('.signatureContain')我正在使用运行1.5.3的XenForo软件进行编辑。我只需要它兼容,至少。谢谢你的评论和建议。它仍然不起作用。从jQuery 1.7开始,不推荐使用
.live()
方法。使用
.on()
附加事件处理程序。较旧版本的jQuery用户应优先使用
.delegate()
,而不是
.live()
。选择器开头缺少$:$('.signatureContain')我正在使用运行1.5.3的XenForo软件进行编辑。我只需要它兼容,至少。谢谢你的评论和建议。它仍然不起作用。这太棒了!非常感谢。我尝试了()和delegate()。两者都不起作用。更新的代码:@GCSkye-->.on在jQuery 1.7+上。不知道为什么
.delegate
不起作用。这太棒了!非常感谢。我尝试了()和delegate()。两者都不起作用。更新的代码:@GCSkye-->.on在jQuery 1.7+上。不确定为什么
.delegate
不起作用。