jQuery切换-有没有办法知道应用了哪个(隐藏或显示)?

jQuery切换-有没有办法知道应用了哪个(隐藏或显示)?,jquery,Jquery,我在AdobeAIR中工作,我有一个div列表,它在一个隐藏的div中显示每个列表项的扩展信息,就像这样: $(this).click(function(){ $(this).next('div.info').toggle(); }); 这扩展了整个应用程序的高度,因此最终,如果用户要扩展所有div,则会在侧边有一个滚动条。为了解决这个问题,我想调整窗口的高度(根据具体情况,可以增大,也可以缩小)。我所有的代码都在运行,只是我不知道如何进入.toggle函数以确定将应用哪个效果(隐藏或显示)

我在AdobeAIR中工作,我有一个div列表,它在一个隐藏的div中显示每个列表项的扩展信息,就像这样:

$(this).click(function(){
 $(this).next('div.info').toggle();
});
这扩展了整个应用程序的高度,因此最终,如果用户要扩展所有div,则会在侧边有一个滚动条。为了解决这个问题,我想调整窗口的高度(根据具体情况,可以增大,也可以缩小)。我所有的代码都在运行,只是我不知道如何进入.toggle函数以确定将应用哪个效果(隐藏或显示)。将my if()语句设置为在info div的结束状态上设置键不起作用,因为它会在单击时立即评估div


有没有办法知道jQuery中应用了哪个.toggle,这样我就可以使用该状态更改来应用我的其他更改?

您可以使用以下方法来测试这一点:

if ($(selector).is(':visible')) {
   // do something
}

切换完成后,您可以知道切换了哪个div:

var visible = $(this).next('div.info').toggle().is(":visible");
if(visible){
  alert("Hey! I've just showed up here!");
}
这样,您就可以知道最近的切换操作是否显示了div。

这将不起作用,因为.is('visible')与名为“visible”的标记匹配。您需要改用“:visible”CSS伪选择器。
$('.class_name').click(function (event)
{
    triggerHideShow('#id_name'); // autodetect    
});

function triggerHideShow(id)
{
    if ($(id).is(':visible'))
    {
        $(id).hide();
    }
    else
    {
        $(id).show();
    }
}