Javascript jQuery-检查哪些div可见-淡入淡出功能不允许立即检查?

Javascript jQuery-检查哪些div可见-淡入淡出功能不允许立即检查?,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,形势 我有一系列的div设置来包含各种内容: <div id="main"> <div id="about"></div> <div id="contact"></div> <div id="flickr"></div> <div id="twitter"></div> </div> 然而,这被证明是困难的,因为由于淡入淡出功能将div更新为隐

形势

我有一系列的div设置来包含各种内容:

<div id="main">
    <div id="about"></div>
    <div id="contact"></div>
    <div id="flickr"></div>
    <div id="twitter"></div>
</div>
然而,这被证明是困难的,因为由于淡入淡出功能将div更新为隐藏的延迟,检查总是一个div out

是否有可靠的方法来检查所有div是否都隐藏?单击导航中的项目时初始化检查,并考虑到每个div在单击项目后需要一定的持续时间才能实际设置为隐藏

干杯


编辑-我想要一个包含“检查隐藏div”的解决方案,而不仅仅是我应该放在哪里。谢谢。

您可以将事件附加到淡入淡出的完成:

$("#MyDiv").fade(100,function(){
    DoSomething();
});

将回调函数添加到自定义动画方法中,在动画的回调代码中调用此回调(如果提供),以允许您在动画完成后附加一些要执行的操作。我将取决于状态是什么,你期望一旦动画完成

$('#toggleContact').click(function() {
    if (!$("#contact .tab").is(':animated')) {
        $('#contact .tab').fadeThenSlideToggle( function() {
              // since this is the callback, we assume that the animation
              // has hidden all but one of the tabs
              ... more stuff to do after the animation is complete ...
        });
    }
});

那么,您是否建议检查是否所有相关的div都隐藏在回调中?如果我已经把东西传给回调怎么办?我可以把它添加到末尾吗?当然,动画的结果就是您测试的条件。在回调中,您应该能够假设除一个div之外的所有div都是隐藏的。也许,您只需要将回调参数添加到自定义函数中,以便可以在当前方法中添加代码。我会用这个更新我的答案。toggleContact不会影响任何其他div,但会影响相应的contact div。我有一系列切换功能,只能淡入/淡出相应的div。因此,在导航中单击about将隐藏并显示about div等。我需要能够检查所有div何时被切换为淡出,以便div是隐藏的,如果有意义的话?我原以为支票应该是全球性的,而不仅仅是放在回调中。除非我在nav中的每个回调项中运行相同的代码?但是,将该代码放在自定义动画函数中是否更有意义?将代码放在自定义动画的回调中更灵活,因为这样您就可以根据正在操作的菜单项执行不同的操作。在我看来,检查应该作为点击事件处理的一部分进行,而不是像现在这样作为设置的一部分。现在,您只在设置click处理程序时检查它,而不是在click事件发生时检查它。我目前正在充分利用回调函数。但是,我不确定如何实际执行检查。你有什么建议?使用:我正在使用的隐藏方法?还是别的什么?
$('#toggleContact').click(function() {
    if (!$("#contact .tab").is(':animated')) {
        $('#contact .tab').fadeThenSlideToggle( function() {
              // since this is the callback, we assume that the animation
              // has hidden all but one of the tabs
              ... more stuff to do after the animation is complete ...
        });
    }
});