setTimeout 变量中的函数被覆盖
Function within setTimeout variable being overwritten
我有一个循环内的函数。我有一个围绕此函数的 setTimeout
函数。我的问题是,由于 setTimeout(这需要保留),正在设置的变量随后被覆盖。有解决此问题的简单方法吗?
演示版http://jsfiddle.net/L29yk2o6/
$("ul li").each(function(i, el) {
$this = $(this);
setTimeout(function () {
myFunct($this);
}, i*100);
});
function myFunct (item)
{
var myText = item.text();
$('body').prepend('<p>'+myText+'</p>');
}
当您忘记使用 var
并创建一个全局变量时就会发生这种情况。
$this = $(this);
需要
var $this = $(this);
我有一个循环内的函数。我有一个围绕此函数的 setTimeout
函数。我的问题是,由于 setTimeout(这需要保留),正在设置的变量随后被覆盖。有解决此问题的简单方法吗?
演示版http://jsfiddle.net/L29yk2o6/
$("ul li").each(function(i, el) {
$this = $(this);
setTimeout(function () {
myFunct($this);
}, i*100);
});
function myFunct (item)
{
var myText = item.text();
$('body').prepend('<p>'+myText+'</p>');
}
当您忘记使用 var
并创建一个全局变量时就会发生这种情况。
$this = $(this);
需要
var $this = $(this);