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

b. *_*eck 11 jquery

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

$(this).click(function(){
 $(this).next('div.info').toggle();
});
Run Code Online (Sandbox Code Playgroud)

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

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

Seb*_*Seb 12

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

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

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

  • 如果正在使用.toggle('slow'),这将无效. (2认同)

Mat*_*ood 8

您可以使用以下方法测试:

if ($(selector).is(':visible')) {
   // do something
}
Run Code Online (Sandbox Code Playgroud)