0

こんにちはフレンズ私は紛らわしいエラーでブロックされていIDますが、それは単純に思えますが、私はそれをやり遂げることができません.私のコードでは発生せず、パネルはトグル効果で正常に動作しますDEMOを確認してください。助けてくださいよろしくお願いします....html()IDHide

4

1 に答える 1

3

あなたはこれを必要以上に難しくしています。これは私がそれを行う方法です:

$('#showhide').click(function(){
  var div = $(this);
  $('.camera_discription_cont_text_container').slideToggle('slow',function() {
      div.html($(this).is(":visible") ? "hide" : "show");
  });
})

しかし、コードの何が問題なのかを実際に説明するには、次のように、2 番目の "if" ステートメントの代わりに "else if" を使用します。

$('#showhide').click(function(){

    if($(this).html()=='hide') {
        $(this).removeClass('hide');
        $(this).addClass('show');
        $(this).html('show');
    }
    else if($(this).html()=='show') {   //note the "else if", not "if"
        $(this).removeClass('show');
        $(this).addClass('hide');
        $(this).html('hide');
    }

    $('.camera_discription_cont_text_container').slideToggle('slow', function() {
        // Animation complete.
    });

})

最初のifステートメントで、html を「show」に変更している場合。その後、ステートメントが終了し、「html が 'show' の場合、hide に変更します」と言っています。すると非表示に変わります。つまり、非表示から表示、非表示へと変化しています。「else if」を使用することはあなたが望むものです。

于 2012-07-21T07:36:56.803 に答える