jquery - JavaScript 循环内的函数

标签 jquery

我无法理解这个问题。我假设它是一个范围问题,但我不知道如何解决它。

我创建了一个数组来存储 6 个独立元素的 x 和 y 位置

var pos = new Array();
for(i=1;i<7;i++){
    pos['box'+i] = $('.box'+i).position();
}

然后我想用另一个循环将其添加到每个元素

for(i=1;i<7;i++){
    $('.box'+i).draggable({zIndex: 9999, revert: function(){
        $(this).animate({top:pos['box'+i].top, left:pos['box'+i].left}, 500, "easeOutElastic");
    }});
}

拖动功能有效,但恢复功能无效。通过一些警报,我发现它正在尝试获取不存在的 pos['box7'] 的位置。为什么不添加每个'box'+i?

最佳答案

尝试将循环内的代码封装在新的“上下文”中:

(function(i) {
  .. your code
})(i);

关于jquery - JavaScript 循环内的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5789075/

相关文章:

javascript - 如何在 indexPage 上加载 tumblr nextPage 的内容

javascript - 如何使用切换?

jquery - 以恒定速度向下滚动网页

javascript - jquery: "Exception thrown and not caught"在 IE8 中,但在其他浏览器中有效

javascript - 未捕获的语法错误 : Unexpected token : on chrome and "SyntaxError: missing ; before statement" on firefox

javascript - 使用 jQuery 更改 CSS 规则定义

javascript - 获取数组组合的最接近值(JS)

javascript - 无法读取未定义的属性(已定义时)

jquery - 使用 JQuery 提取 HTML

javascript - 这个表达式在 JavaScript 中起什么作用?