jQuery Toggle - 任何知道应用哪个(隐藏或显示)的方法?

时间:2009-03-28 21:19:56

标签: jquery

我在Adobe AIR工作,我有一个div列表,显示点击隐藏div中每个列表项的扩展信息 - 如下所示:

$(this).click(function(){
 $(this).next('div.info').toggle();
});

这扩展了整个应用程序的高度,所以最终,如果用户要扩展所有div,那么侧面会有一个滚动条。为了解决这个问题,我想调整窗口的高度(增长或缩小,取决于)。我已经完成了所有代码,除了我无法弄清楚如何进入.toggle函数以找出将要应用的效果(隐藏或显示)。将我的if()语句设置为在info div的end-state上键不起作用,因为它会在点击时立即评估div。

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

3 个答案:

答案 0 :(得分:12)

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

var visible = $(this).next('div.info').toggle().is(":visible");
if(visible){
  alert("Hey! I've just showed up here!");
}

这样你就会知道最近的切换操作是否显示了div。

答案 1 :(得分:7)

你可以用以下方法测试:

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

答案 2 :(得分:0)

$('.class_name').click(function (event)
{
    triggerHideShow('#id_name'); // autodetect    
});

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