2012-01-04 8 views
0

divを表示および非表示に切り替えるコードがありますが、今はどの状態にあるのかに基づいて処理したいと思います。これをする。私はトグルを別々に見せて、別々に隠す必要があると思う。jQuery show hide div、toggleを置き換えますが、わかりません

私はこのコードを持っています。その下に、私がしようとしていることを示唆する疑似コードがあります。

$(function() { 
    $('.collapse_btn').click(function() { 
     $("#shot_btn").attr("src","/images/contract_icon.gif");//replaces src in existing image with animated version. To be done when hide() runs 
     $('.imgbox').toggle(400); 
     $('#shot_h3').addClass("border_radius"); 
     $("#shot_btn").attr("src","/images/expand_icon.gif");//replaces contract_icon.gif. To be done when show() runs 
    }); 
}); 


$(function() { 
    $('.collapse_btn').click(function() { 
     if(currently visible){ 
      $("#shot_btn").attr("src","/images/contract_icon.gif");//replaces src in existing image with animated version. To be done when hide() runs 
      $('.imgbox').hide(400); 
     } 
     else{ 
      $('#shot_h3').removeClass("border_radius"); 
      $("#shot_btn").attr("src","/images/expand_icon.gif");//replaces contract_icon.gif. To be done when show() runs 
      $('.imgbox').show(400); 
    }); 
}); 

ありがとうございました。だからあなたのコードで

答えて

3
if ($('.imgbox').is(':visible')) { 
    //hide 
} 
else { 
    //show 
} 

:読みやすくするために

$('.collapse_btn').click(function() { 
    if ($('.imgbox').is(':visible')) { 
     $("#shot_btn").attr("src","/images/contract_icon.gif"); 
     $('.imgbox').hide(400); 
    } 
    else { 
     $('#shot_h3').removeClass("border_radius"); 
     $("#shot_btn").attr("src","/images/expand_icon.gif"); 
     $('.imgbox').show(400); 
    } 
}); 
+0

+1。また、 'display'プロパティを直接読むこともできます。 ['.hide()'](http://api.jquery.com/hide/)と['.toggle()'](http://api.jquery.com/toggle/)は両方とも 'display'を設定します(たとえアニメーション化されていても)要素を隠した後に「なし」にします。 – PPvG

+0

こんにちは、これを最終的なコードとして使用しました。ありがとうございます。 –

関連する問題