javascript - Jquery $.each 在 $.each 中使用 setTimeout

标签 javascript jquery

我正在尝试在嵌套的 $.each 中使用 setTimeout()。当我运行这个脚本时,console.log立即显示main0,main1,main2,这是错误的,应该像test一样每5秒后一一显示... 第二个 $.each 的值。

var i = 1;
var indexArrayMain = [1,2,3];
var indexArray = [3,6,9];
var timerx = new Array();

// main each
$(indexArrayMain).each(function(indexArrayMain) {
  console.log('main' + indexArrayMain);
  // sub each
  $(indexArray).each(function(indexArraykey) {
    function internalCallback(i, indexArraykey) {
      return function() {
        val = indexArray[indexArraykey];
        console.log("test " + i + val);
      }
    } 

    timerx[i] = setTimeout(internalCallback(i, indexArraykey), i * 5000);                     
    i++;
  }); 
}); 

http://jsfiddle.net/Guxdz/8/

最佳答案

你有console.log('main'+indexArrayMain); 写在第一个$.each下,这个日志没有在超时回调中运行,这使得它立即运行。

关于javascript - Jquery $.each 在 $.each 中使用 setTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42627747/

相关文章:

javascript - MVC函数没有定义在onclick处?

javascript - puppeteer 在所选页面上执行 js 函数

javascript - 当 Div 向左浮动时动画位置变化

ajax - 使用 ajax 使用 flot 绘制多个数据集 - 数据未正确显示

javascript - "kill"在 JavaScript 中做什么?

javascript - 查找没有特定类的直接子元素的元素

jquery - 在文本冒号 ":"之前的 <li></li> 之间将不同的样式包装到特定文本?

javascript - "Back to top"手机点击按钮不隐藏

Javascript Regex - 只影响非 html 代码? (即文字)

javascript - JS 输入 onClick 未定义