【发布时间】:2012-03-22 01:54:46
【问题描述】:
在我的 HTML 中,a#navInnerMapR 和 a#navInnerMapL 包含在 div#navTwo 中。
以下代码在函数内。调用时,我需要该函数将 div#navTwo 中的任何可见链接淡出,暂停片刻,然后淡入 #navInnerMapR。
$('div#navTwo a').fadeOut(200, function() {
$('a#navInnerMapR').delay(100).fadeIn(200);
});
代码淡出链接,但不淡入任何内容。我认为它们延迟只会在fadeOut 完成后开始,但是将延迟值更改为1000 使其有时可以工作,但它非常有问题。谢谢
更新这是一个小提琴,显示隐藏链接在隐藏可见之前开始显示:http://jsfiddle.net/jamesbrighton/d9QKr/5/
更新道歉,我的问题不包括我需要实现的全部细节。我简化了它,因为我认为我只是有某种可以轻松修复的语法问题。
div#navTwo 实际上包含 3 个链接。在任何时候(除了动画运行前的延迟)只有 1 个链接可见。我需要能够调用一个函数来隐藏正在显示的其他 2 个链接中的任何一个,然后显示 #navInnerMapR。
不同的事件将调用此函数,因此不是#navInnerMapR 的两个链接中的任何一个都可能是可见的。谢谢
更新我认为这个小提琴说明了这个问题。我创建了 2 个 div.nav 来说明不同的状态。我在每个链接中都隐藏了带有内联 CSS 的不同链接。 JavaScript 将重复显示和隐藏我的 div 中的链接,因此同一个 div 在不同时间看起来像每个示例。
我创建了 2 个触发器来说明需要调用函数的不同事件。当您单击触发器时,您可以看到这两个示例的问题。在显示 a.one 之前,可见的 div 不会被隐藏。谢谢你的耐心!
http://jsfiddle.net/jamesbrighton/dYvMS/24/
有趣的一点,如果我改变 $('.nav a.one').fadeIn(1000);警报,警报会触发多次!不知道为什么会这样!
【问题讨论】:
-
Works for me。顺便说一句,您不需要
delay,因为在fadeOut动画结束后将调用一次回调。 -
看起来隐藏链接在隐藏可见链接之前开始显示jsfiddle.net/jamesbrighton/d9QKr
-
你想达到什么目的?你希望它如何工作?例如:单击右链接时会发生什么?试试jsfiddle.net/skram/d9QKr/6
-
是的,这就是我想要的,但我需要一个我可以调用的函数中的动画,因为点击不同的东西会实现它。为什么我的代码不像你的那样工作?谢谢
-
从技术上讲,我希望在淡出和淡入之间有一个延迟,所以这更符合我的要求,但就像我说的那样,我需要能够使用多个事件调用该函数。这些事件还具有触发它们的各种条件,这就是为什么将事物分开很重要的原因。 jsfiddle.net/jamesbrighton/tbAF7
标签: javascript jquery callback delay fadeout