2014-11-19 7 views
-1

Я hidding 2 divs, и я хочу сделать, что в это же время будет показано только одно из них.Показать только один скрытый div

Например, если я нажму сначала - он появится. Затем я нажимаю на вторую, а затем сначала прячутся и показываю только второй div.

<div id="showmenu">Click Here</div> 
<div class="menu" style="display: none;"><ul><li>Button1</li><li>Button2</li><li>Button3</li></ul></div> 

<br><br> 

<div id="showmenu2">Click Here</div> 
<div class="menu2" style="display: none;"><ul><li>Button1</li><li>Button2</li><li>Button3</li></ul></div> 

    $(document).ready(function() { 
     $('#showmenu').click(function() { 
       $('.menu').toggle("slide"); 
     }); 
    }); 

    $(document).ready(function() { 
     $('#showmenu2').click(function() { 
       $('.menu2').toggle("slide"); 
     }); 
    }); 

http://jsfiddle.net/APA2S/3337/

+0

http://jsfiddle.net/kriyeta/APA2S/3343/ – kriyeta

+0

Ваш код действительно не maintenable. Что произойдет, если вы скажете меню с десятью элементами? Вы должны обернуть его в общий контейнер и/или использовать некоторые общие классы, а не идентификаторы –

ответ

1

Используйте это:

$(document).ready(function() { 
    $('#showmenu').click(function() { 
     $('.menu').toggle("slide"); 
     $('.menu2').hide("slide");//hide the menu2 when the menu is clicked 
    }); 

    $('#showmenu2').click(function() { 
     $('.menu2').toggle("slide"); 
     $('.menu').hide("slide");//hide the menu when the menu2 is clicked 
    }); 
}); 

JSFIDDLE: http://jsfiddle.net/ghorg12110/APA2S/3338/

+0

Спасибо! Это именно то, что мне нужно. :) – Xinel

+0

@Xinel, пожалуйста, нажмите на галочку, чтобы отметить ваш вопрос, как разрешено. –

+0

Несомненно! Это не позволило отметить, мне пришлось подождать 10 минут. – Xinel

2

Попробуйте это,

$(document).ready(function() { 

    $('#showmenu').click(function() { 
     $('.menu').slideDown(); 
     $('.menu2').slideUp(); 
    }); 

    $('#showmenu2').click(function() { 
     $('.menu2').slideDown(); 
     $('.menu').slideUp(); 
    }); 

}); 
1

Вот, попробуйте это один:

$(document).ready(function() { 
    $('#showmenu').click(function() { 
      $('.menu, .menu2').stop().slideUp(); 
      $('.menu').stop().toggle("slideDown"); 
    }); 

    $('#showmenu2').click(function() { 
      $('.menu, .menu2').stop().slideUp(); 
      $('.menu2').stop().toggle("slideDown"); 
    }); 
}); 

Избегайте повторения $ (документ) .ready, Я также исправить анимацию ...

Fiddle: http://jsfiddle.net/APA2S/3344/

1

замените следующий сценарий будет работать:

$(document).ready(function() { 
    $('#showmenu').click(function() { 
      $('.menu').toggle("slide"); 
      $('.menu2').hide("slide"); 
    }); 
}); 

$(document).ready(function() { 
    $('#showmenu2').click(function() { 
      $('.menu2').toggle("slide"); 
      $('.menu').hide("slide"); 
    }); 
}); 
+0

нет необходимости в двух документах. –

+0

Я знаю, дорогой @suchit, но главное в этой спрятанности и шоу, поэтому я просто даю уступку за это –

+0

, когда вы отправляете сообщение, чтобы отправить сообщение соответствующим образом, это все, что я имею в виду. –

1
$(document).ready(function() { 
    $('#showmenu').click(function() { 
     $('.hidden').hide(); 
      $('.menu').toggle("slide"); 
    }); 
}); 

$(document).ready(function() { 
    $('#showmenu2').click(function() { 
     $('.hidden').hide(); 
     $('.menu2').toggle("slide"); 
    }); 
}); 

Demo dont forget для добавления скрытого класса в свои меню вы можете использовать этот код, если у вас есть более 2 меню

1

вы можете попробовать: просто используйте hide(), вы его получите.

$(document).ready(function() { 
    $('#showmenu2').click(function() { 
        $('.menu').hide(); 
       $('.menu2').toggle("slide"); 

     }); 

      $('#showmenu').click(function() { 
        $('.menu2').hide(); 
       $('.menu').toggle("slide"); 

     }); 
}); 
Смежные вопросы