我在Adobe AIR工作,我有一个div列表,显示点击隐藏div中每个列表项的扩展信息 - 如下所示:
$(this).click(function(){
$(this).next('div.info').toggle();
});
这扩展了整个应用程序的高度,所以最终,如果用户要扩展所有div,那么侧面会有一个滚动条。为了解决这个问题,我想调整窗口的高度(增长或缩小,取决于)。我已经完成了所有代码,除了我无法弄清楚如何进入.toggle函数以找出将要应用的效果(隐藏或显示)。将我的if()语句设置为在info div的end-state上键不起作用,因为它会在点击时立即评估div。
有没有办法知道在jQuery中应用了哪个.toggle所以我可以使用该状态更改来应用我的其他更改?
答案 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();
}
}