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