使用JQuery,如何显示<div>,然后添加一些html,然后删除html然后隐藏div?</div>

时间:2009-08-03 05:58:47

标签: javascript jquery timed

<div id="message" style="display: none">
 <!-- Here I want to place a message. It should be visible for 3 seconds.Then clear the      div to get ready for the next message. -->
</div>

如何使用JQuery执行以下操作?

1.将消息插入到id为“message”的div中,并使div可见。  2.使消息可见3秒钟。  3.删除div“message”的内容。  4.隐藏div,然后在必要时从步骤1开始。

提前谢谢。

4 个答案:

答案 0 :(得分:9)

我是这样做的:

$.msg = function(text, style)
{
    style = style || 'notice';           //<== default style if it's not set

    //create message and show it
    $('<div>')
      .attr('class', style)
      .html(text)
      .fadeIn('fast')
      .insertBefore($('#page-content'))  //<== wherever you want it to show
      .animate({opacity: 1.0}, 3000)     //<== wait 3 sec before fading out
      .fadeOut('slow', function()
      {
        $(this).remove();
      });
};

<强>示例:

$.msg('hello world');
$.msg('it worked','success');
$.msg('there was a problem','error');

工作原理

  1. 创建一个div元素
  2. 设置样式(以便您可以更改外观)
  3. 将html设置为show
  4. 开始淡入消息,以便可见
  5. 将邮件插入您想要的位置
  6. 等待3秒
  7. 淡出消息
  8. 从DOM中移除div - 没有混乱!

  9. 奖励示例邮件样式:

    .notice, .success, .error {padding:0.8em;margin:0.77em 0.77em 0 0.77em;border-width:2px;border-style:solid;}
    .notice {background-color:#FFF6BF;color:#514721;border-color:#FFD324;}
    .success {background-color:#E6EFC2;color:#264409;border-color:#C6D880;}
    .error {background-color:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;}
    .error a {color:#8a1f11;}
    .notice a {color:#514721;}
    .success a {color:#264409;}
    

    ```

答案 1 :(得分:5)

您可以这样做:

var $messageDiv = $('#message'); // get the reference of the div
$messageDiv.show().html('message here'); // show and set the message
setTimeout(function(){ $messageDiv.hide().html('');}, 3000); // 3 seconds later, hide
                                                             // and clear the message

答案 2 :(得分:1)

这是一个小脚本,以3秒的间隔循环显示消息。也许这不是你需要的,但我希望它可以帮助你实现你想要的东西。

var messages = [
  "test message 0",
  "test message 1",
  "test message 2",
  "test message 3"
];

$(function() {
  var msgIndex = 0;
  setInterval(function() {
    $msgDiv = $("#message");
    $msgDiv.fadeOut(200, function() {
      $msgDiv.html(messages[msgIndex]).fadeIn(500);
      if(msgIndex >= messages.length)
        msgIndex = msgIndex % messages.length;
    });
  }, 3000);
});

答案 3 :(得分:0)

看看jGrowl。非常好,可配置。