执行后,window.setTimeout()抛出'Uncaught TypeError:undefined不是函数'?

时间:2014-07-21 14:22:47

标签: javascript jquery twitter-bootstrap settimeout

以下是我的问题代码:

// if any alerts, set them to auto-close
window.setTimeout(function() {
  $.each( $('.alert'), function(){
    closeAlert( this );
  });
}, 2000);

function closeAlert( alert ){
  $(alert).fadeTo(2000, 500).slideUp(500, function(){
    $(alert).close();
  });
};

因此,上面的代码用于在几秒钟后自动关闭引导警报。它工作正常,但是在closeAlert()方法关闭警报后立即,我的控制台出现以下错误:

Uncaught TypeError: undefined is not a function 该错误引用了closeAlert()方法的最后一个括号。

为什么在定义函数时会出现未定义的错误?

1 个答案:

答案 0 :(得分:3)

$(alert).close();

应该是这样的

$(alert).hide();

由于Jquery没有名为.close()

的函数,因此出错

完整代码将是,

window.setTimeout(function() {
  $.each( $('.alert'), function(){
    closeAlert( this );
  });
}, 2000);

function closeAlert( alert ){
  $(alert).fadeTo(2000, 500).slideUp(500, function(){
    $(alert).hide();
  });
};