使用Jquery慢慢隐藏div

时间:2010-06-09 20:44:58

标签: javascript jquery hover

我正在尝试制作一些代码来查找div是否存在,如果确实存在则会慢慢消失。我有这个来确定div是否存在

    if($('#error').length != 0)
 {
  $('#error').hide(500);
 }  

这确实有效,但只是在刷新时,我一直试图把它放在这样的计时器中:

   var refreshId = setInterval(function()
   {
      if($('#error').length != 0)
 {
  $('#error').hide(500);
 }   
   }, 500);

但它没有摆脱innerHTML!我有一些代码,在悬停时改变了错误div的innerHTML,所以我可以填写它,但由于某种原因这不起作用,任何建议都会有所帮助!

谢谢!

3 个答案:

答案 0 :(得分:7)

$("#error").fadeOut(500);

更新

如果您想检查存在:

var msg = $("#error");
if(msg.length) {
  msg.fadeOut(500);
}

如果你想要清空它:

$("#error").empty();

答案 1 :(得分:5)

如果您只想延迟500ms然后淡出,请执行以下操作:

$("#error").delay(500).fadeOut();

要同时清空该元素,请提供.fadeOut()的回调,如下所示:

$("#error").delay(500).fadeOut(function() {
  $(this).html('');
});

没有必要检查.length,如果与选择器匹配的元素不存在,则没有任何反应:)

答案 2 :(得分:0)

您尝试隐藏的div可能在脚本运行时未加载。试试这个;它将推迟执行,直到加载DOM:

 $(document).ready(function() {
   // put your code here
 });

无论如何,这是一个很好的做法。

参考:http://docs.jquery.com/Tutorials:Introducing_ $(文件).ready()