0

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/

4

3 に答える 3

2

を使用できます.toggleClassが、残りのコードの多くについては少しずれていると思います。バインドする代わりに、おそらくバインドして兄弟を見つけ、次にその子を見つけ.signatureContainたいと思うでしょう。も欠落しています。ここですべてを修正しました:.button .signatureContain.signature$

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

.toggleClassバージョン: http://jsfiddle.net/w3Hg3/5/

于 2013-01-23T01:14:20.610 に答える
1

toggleClassメソッドを使用します。

$('.signatureContain').on('click', function(event){
    $(this).toggleClass("hidesome show");
});
于 2013-01-23T01:11:45.787 に答える
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 よりも詳細に指定できます。

デモ: http://jsfiddle.net/3H4ym/

于 2013-01-23T01:24:55.467 に答える