setTimeout函数总是触发

时间:2012-08-09 20:33:23

标签: jquery settimeout

当您点击它之外我正在使用以下代码隐藏div(命名信息):

$(document).click(function(e) {
if (e.target.id != 'info' && !$('#info').find(e.target).length) {
        $("#info").fadeOut(300);
setTimeout(function() {
        $("#info").html("Select an Item");
},300);
}; //if statement
}); //click function

我想要实现的是在完成fadeOut之后,在div中放置文本“选择一个项目”。但是这个SetTimeout总是被执行; div通过另一个函数显示自己,但似乎这个setTimeout函数也会立即触发。

为什么会发生这种情况?你如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

如果可以,我会避免setTimeout,而是这样做:

$("#info").fadeOut(300, function() {
  // Animation complete.
  $("#info").html("Select an Item");
});

答案 1 :(得分:0)

我更好的解决方案是使用延迟功能:

  

$(“#info”)。延迟(1000).html(“选择一项”)。fadeOut(300);

参考文献: