如何将变量传递给jQuery超时

Bob*_*Bob 2 jquery

我今天正在努力奋斗.

我需要将一个变量,甚至更好的对象传递给timeOut(例如):

$('.x').each(function() 
{
  setTimeout(function()
  {
    alert ($(this).attr('id'))
  },10000);
});
Run Code Online (Sandbox Code Playgroud)

显然,会发生的事情是timeOut没有引用原始文件 $(this)

救命 ?

Que*_*tin 5

this是上下文敏感的(并且是不同的a_jQuery_object.each比在window.setTimeout,但它的参考可以被复制到一个不同的变量,是不是上下文敏感的,这是常规使用that用于此目的.

$('.x').each(function() {
    var that = this; 
    setTimeout(function() { 
        alert ($(that).attr('id'))
    },10000); 
});
Run Code Online (Sandbox Code Playgroud)