gpt4 book ai didi

javascript - 解析 $(this) 以在 setTimeout 内运行

转载 作者:行者123 更新时间:2023-11-28 15:26:05 25 4
gpt4 key购买 nike

我有一个函数需要将 $(this) 解析为它。它位于 each 循环内。这按预期工作。当我需要与 setTimeout() 结合使用时访问 $(this) 时,问题就出现了

演示 http://jsfiddle.net/6e937r1b/2/

为了简化和演示我的问题,我整理了一个基本的 fiddle 。您会注意到文本没有输出。

$("li").each(function(i) {
/* below example outputs value if i only */
setTimeout(function() {
alertThis($(this).text() + i);
}, 1000 * i);

/* below example works as you'd expect outputting the text and value of i */
alertThis($(this).text() + i + ' outside of timeout');
});

function alertThis(text)
{
alert(text);
}

最佳答案

与往常一样,如果范围发生变化,您需要捕获this:

$("li").each(function(i) {
var target = $(this);

setTimeout(function() {
alertThis(target.text() + i);
}, 1000 * i);

alertThis(target.text() + i + ' outside of timeout');
});

关于javascript - 解析 $(this) 以在 setTimeout 内运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28863654/

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