JQuery Toggle Slide - 当其他元素切换关闭时显示元素

时间:2018-01-14 12:28:08

标签: javascript jquery toggle slide

JSFiddle:http://jsfiddle.net/ncuacvcu/

DIV home 默认显示。

点击 LINK one / LINK two DIV one / DIV two 取代 DIV主页。当我再次点击链接一个 / LINK两个时, DIV一个 / DIV两个切换关闭,留空白色空间。如何在当时再次显示 DIV home

同时,如果 DIV一个打开,我点击 LINK两个,我希望 DIV一个替换为< strong> DIV two (即没有经过 DIV主页)。

这是我尝试过的(以及一些变化),但我无法让它起作用:

 $("a#one_toggle").click(function()
         {
           $(".hideall").not(".one").slideUp();
           $(".one")slideToggle(function(){
               if($('#client1').is(':visible')){
                   $('#client0').SlideUp();
               } else{
                   $('#client0').SlideDown();
               }
         });
 });

提前感谢任何提示!

1 个答案:

答案 0 :(得分:0)

您需要使用slideToggle的回调并检查带有class home的div是否可见,然后显示它。

http://api.jquery.com/slidetoggle/

http://api.jquery.com/is/

$(function() {
    $("a#one_toggle").click(function() {
         $(".hideall").not(".one").slideUp();
         $(".one").slideToggle('slow', function() {
            showHome($('.one'));
         }); 
    });
           
    $("a#two_toggle").click(function() {
         $(".hideall").not(".two").slideUp();
         $(".two").slideToggle('slow', function() {
            showHome($('.two'));
         }); 
    });
});

function showHome(elementToCheck) {
    // now we know if the div to check is visible or not
    if (!$(elementToCheck).is(':visible')) {
        // the div is not visible so we show it
        $('.home').slideDown();
    }
}
.one,
.two {
  display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="one_toggle">link one</a>
<a href="#" id="two_toggle">link two</a>

<div class="home hideall">
  home
</div>

<div class="one hideall">
  one
</div>

<div class="two hideall">
  two
</div>