gpt4 book ai didi

javascript - jquery javascript 停止在嵌套数组迭代中计算 undefined object

转载 作者:行者123 更新时间:2023-11-28 02:36:17 24 4
gpt4 key购买 nike

我有一个数组数组,一些内部数组还有另一个嵌套数组。有些则不然。我循环遍历顶级数组元素,如果有内部数组,我循环遍历它们。如果没有,我就不会。或者说我是这么认为的。

出于某种原因,当我的迭代找到一个没有嵌套数组的数组时,我的控制台显示“类型错误”未定义...这在技术上是正确的,因为没有定义嵌套数组。但是我认为我的嵌套 if 语句不允许对此进行评估。有什么想法吗?

例如,animation[0][3]是一个数组,但animations[1][3]是未定义的。所以在我的 if 循环中我有一个嵌套

var a = animations.shift();

if ( a[3] )
{
console.log( 'a[3] is: ' + a[3] )
}
else
{
return;
}

我读到,如果 a[3] 存在,则将其记录到控制台,如果不转义而不打印到控制台...但我的控制台继续产生未定义的评估。这是因为简单地测试它的存在会返回未定义的错误吗?每次遇到没有嵌套数组的数组时,如何阻止弹出此错误?

谢谢。

var animations = [
['.pcba','fadeIn', [1000], [
['.pcb_cad', 'fadeIn', [1000] ]
]
],
['.pcba', 'delay', [2000] ],
['.pcba','fadeOut', [1000], [
['.heatGenComps', 'fadeIn', [1000] ],
['.arrows', 'fadeIn', [1000] ]
]
],
['.heatGenComps', 'delay', [2000] ],
['.heatGenComps', 'fadeOut', [1000], [
['.arrows', 'fadeOut', [1000] ],
['.pcb_cad_cfd', 'fadeIn', [1000] ],
['.wePredOpTemps', 'fadeIn', [1000] ]
]
],

];

我像这样迭代它们:

iter();
function iter(){

if (!animating) return;

var a = animations.shift();

if (a) {
var el = a[0];
var fn = a[1];
var args = a[2];

$.fn[ a[1] ].apply( $( a[0] ), a[2] ).promise().done(iter);
if ( a[3] )
{
var secondary = a[3];
console.log( 'a[3] is: ' + a[3] );
secondaryAnime();
function secondaryAnime(){
b = secondary.shift();
console.log('secondary is: ' + b );
$.fn[ b[1] ].apply( $( b[0] ), b[2] );
secondaryAnime();
};

}
else
{
return;
}


}
else
{

}

};

最佳答案

实际上,您有很多用于简单动画链的代码。您想要做的就是在每个步骤中同时拥有一些动画。

您听说过plugin jquery-timing吗? ?它允许几乎无需任何代码即可串联任何异步内容。我将给出完全按照您的动画链执行的整个代码,具有相同的计时,以 jquery-timing 风格编写:

$('.pcb_cad').fadeIn(1000)
.$('.pcba').fadeIn(1000,$).wait(2000).fadeOut(1000)
.$('.heatGenComps, .arrows').fadeIn(1000,$).wait(2000).fadeOut(1000)
.$('.pcb_cad_cfd, .wePredOpTemps').fadeIn(1000);

如您所见,它只是一个长 jQuery 链。

这里只需要该插件的两种计时方法。首先,每当您想在方法链中使用以下 jQuery 命令等待完成淡入淡出动画时,都可以编写 .fadeIn(...,$) 。方法 .wait(timeout) 将在给定的超时时间后继续执行方法链中的所有以下方法。

该插件有很多更直观的方法来推迟和连接您的操作。

关于javascript - jquery javascript 停止在嵌套数组迭代中计算 undefined object ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13441075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com