我有一个循环内的函数。我有一个setTimeout
函数围绕这个函数。我的问题是,由于setTimeout(这需要保留),正在设置的变量会被覆盖。有没有一种简单的方法来解决这个问题?
DEMO 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>');
}
答案 0 :(得分:2)
当您忘记使用var
并创建全局变量时会发生这种情况。
$this = $(this);
需要
var $this = $(this);