如何在slideToggle之后测试DIV是打开还是关闭

Mac*_*ort 16 jquery if-statement slidetoggle

我有一个Jquery Ui按钮(#toggleIcons),当单击时,切换div(.icons)以显示一些图标.我还使用Jquery Isotope和Infinitescroll动态添加新图像.我想要做的是在添加和更新新图像时有一种方法可以保留slideToggle状态.Ifinitescroll有一个回调函数,以便我可以更新页面和图标的状态.

//My button click function
$("#styleSwitcher #toggleIcons" ).click(function() {
   $('.icons').slideToggle('slow');
   //for Isotope to update the layout
   $('#container').isotope('reLayout') 
    return false;
});

//code I am working on to put in callback to test if div is open or closed
if($(".icons").is(":hidden"))
{
  $('.icons').hide();
}
else
{
  $('.icons').show();
}
Run Code Online (Sandbox Code Playgroud)

不工作.任何帮助或方向将不胜感激.谢谢

Mik*_*ier 25

你有条件倒退:

if ($(".icons").is(":visible")) { <-----
  $('.icons').hide(); 
} else {
  $('.icons').show(); 
}
Run Code Online (Sandbox Code Playgroud)


Rya*_*rne 20

把检查状态脚本放在一个函数中 - 让它保持一点..

$('.advance-view').click(function() {
    $('#advance-control').slideToggle('slow', function() {
        if ($('#advance-control').is(':hidden'))
        {
            $('.advance-view').css("background-color", "#2B509A");
        }
        else
        {
            $('.advance-view').css("background-color", "#4D6837");
        }
    });             
});
Run Code Online (Sandbox Code Playgroud)


Fat*_*orm 2

为什么不直接切换滑动切换呢?

$(".icons").toggle();
Run Code Online (Sandbox Code Playgroud)