如何将变量传递给jQuery超时

时间:2010-04-21 14:34:21

标签: jquery

我今天正在努力奋斗。

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

$('.x').each(function() 
{
  setTimeout(function()
  {
    alert ($(this).attr('id'))
  },10000);
});

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

帮助?

1 个答案:

答案 0 :(得分:5)

this是上下文敏感的(在a_jQuery_object.each中与window.setTimeout不同,但它的引用可以复制到不受上下文敏感的其他变量。这是常规的为此目的使用that

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