sách gpt4 ai đã đi

javascript - window.setInterval 可能存在范围问题吗?

In lại 作者:行者123 更新时间:2023-12-02 19:16:18 25 4
mua khóa gpt4 Nike

感谢您花时间阅读这篇文章。终于鼓起勇气在这里提问了:)希望我以正确的方式提出我的问题。

我的问题是,我试图在页面周围随机设置“方 block ”动画,但 setInterval 方法遇到问题。

您可以在这里找到它 http://jsfiddle.net/xEMXh/

在 Init 函数中,我尝试遍历每个幽灵元素并为其设置一个间隔函数,然后使其每 X 秒以随机方向动画一次。

for (ghostCount = 0; ghostCount < ghosts.length; ghostCount += 1) {
var speed = LesMccutcheon.GhostHunter.GetSpeed($(ghosts[ghostCount]).attr('data-speed')),
activeGhost = ghosts[ghostCount];
window.setInterval(function() {
LesMccutcheon.GhostHunter.MoveInDirection(activeGhost);
}, speed);
}

所发生的只是最后一个“幽灵”元素正在动画。我知道这是因为在 for 循环中我覆盖了变量,并且当第一个间隔被称为 activeGhost 时,它是 for 循环中的最后一个设置。

我尝试直接在 set.Interval 中使用ghosts[ghostCount],但似乎设置间隔无法访问它。我尝试将其设置为 set.Interval anom 函数内的变量,但它记录为未定义。

我唯一的半生不熟的想法是尝试设置一个增量变量标识符,但这似乎适得其反,而且不是一个好方法。

预先感谢您的任何建议!

莱斯

1 Câu trả lời

在您的代码中,每个循环都会覆盖变量activeGhost。只需将 setInterval 的调用放入这样的闭包中

( function (activeGhost) {
window.setInterval(function() {
LesMccutcheon.GhostHunter.MoveInDirection(activeGhost);
}, speed);
} ( activeGhost) );

这样应该保留对正确元素的引用。

关于javascript - window.setInterval 可能存在范围问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13100587/

25 4 0
Bài viết được đề xuất: javascript - 使用 JS 在我的网页中加载另一个网站内容
Bài viết được đề xuất: javascript帮助日期/显示
Bài viết được đề xuất: javascript - JQuery 绑定(bind)在同一元素上,独特的行为
Bài viết được đề xuất: Javascript意外的意外标识符
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com