被覆盖的setTimeout变量中的函数

时间:2015-03-11 18:40:29

标签: javascript jquery settimeout

我有一个循环内的函数。我有一个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>');
}

1 个答案:

答案 0 :(得分:2)

当您忘记使用var并创建全局变量时会发生这种情况。

$this = $(this);

需要

var $this = $(this);