0

これが私の状況です:最初にページをロードするときに、「menu1b」を非表示にする「menu1a」以外のメニュー「menu(2a、3a、4a、5a、6a)」を非表示にします。次に、「menu1a」が表示されているかどうかを確認して条件を実行するボタンをクリックしたいので、もう一度クリックすると、ボタンで非表示にする必要があるため、if条件が発生しないはずです。

HTML は次のとおりです。

        <div class="main">
            <div class="menu" id="menu1a"></div>
            <div class="menu" id="menu1b"></div>
            <div class="menu" id="menu2a"></div>
            <div class="menu" id="menu2b"></div>
            <div class="menu" id="menu3a"></div>
            <div class="menu" id="menu3b"></div>
            <div class="menu" id="menu4a"></div>
            <div class="menu" id="menu4b"></div>
            <div class="menu" id="menu5a"></div>
            <div class="menu" id="menu5b"></div>
            <div class="menu" id="menu6a"></div>
            <div class="menu" id="menu6b"></div>
        </div>

そしてスクリプト:

$(document).ready(function() {
          $('.container2').hide();
          $('.container3').hide();
          $('.container4').hide();
          $('.container5').hide();
          $('.container6').hide();
          $('#menu1b').hide();
          $('#menu2a').hide();
          $('#menu3a').hide();
          $('#menu4a').hide();
          $('#menu5a').hide();
          $('#menu6a').hide();
});
$('#menu2b').click(function(){
if($('#menu1a').is(':visible'))
    {
        $('.main').delay(50).animate({marginTop : "-=160px"},{duration: 1000});
        $('.footer').delay(220).animate({marginTop : "-=150px"},{duration: 1000});
        $('.container2').animate({marginTop : "-=90px"},{duration: 0}).delay(200).show(0).slideUp(0).slideDown(150);
    }
      $('#menu1a').show();$('#menu1b').hide();
      $('#menu2a').hide();$('#menu2b').show();
      $('#menu3a').hide();$('#menu3b').show();
      $('#menu4a').hide();$('#menu4b').show();
      $('#menu5a').hide();$('#menu5b').show();
      $('#menu6a').hide();$('#menu6b').show();
});

更新:if条件が無視されている...メニューをクリックするたびに「マージントップ」になり、#menu1aが常に表示されているようです。

前もって感謝します :)

4

0 に答える 0