javascript - 将数组元素传递给 settimeout 函数

标签 javascript settimeout

我不明白为什么淡出有效但删除无效。我发现是数组的问题。我尝试了一些组合,但无法使其工作。

for (var i=0;i<fieldsblock.length;i++){
     $("#"+fieldsblock[i]+"_tr"+nid).fadeOut();
     t=setTimeout(function(){$("#"+fieldsblock[i]+"_tr"+nid).remove();},400); 
    }

谢谢。

最佳答案

看起来您只需要运行一次 fadeOut 即可删除remove已完成。如果是这种情况,则不需要使用 setTimeout。您可以改用回调:

for (var i=0;i<fieldsblock.length;i++){
    $("#"+fieldsblock[i]+"_tr"+nid).fadeOut(function() {
        $(this).remove();
    });
}

每当动画完成时都会执行回调,因此这样做意味着如果您还想更改淡入淡出的持续时间,则不必更改 setTimeout 持续时间。

关于javascript - 将数组元素传递给 settimeout 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7572442/

相关文章:

javascript - 如何在 AngularJS 中循环数组时隐藏空值字段

javascript - 事件监听器触发后延迟执行

javascript - 为什么当我的站点打开多个选项卡时我的 setTimeout 会加快?

javascript - setTimeout 中函数的值

Javascript 替换字符串正则表达式

javascript - angular2 - 使变量更具可变性

javascript - 在 Javascript 中制作函数式 OO 函数

javascript - 应用程序制作者 : Show Big Query data in grid

javascript - 从 timeoutID 获取 setTimeout 延迟

javascript - 为 Google Analytics 添加延迟链接点击