两个jQuery延迟消息?

时间:2011-10-18 11:15:02

标签: jquery

这是我们的代码:

<script type="text/javascript">
$(document).ready(function() {
    $('a#installfc').click(function(e){
        e.preventDefault();
        window.open("http://www.site.com/ads/tr.php?src=source",'_parent');    
        $(this).html("Opening Download Link.. Please wait").delay(3000).html("Please run the installer after downloading");
    });
});
</script>

基本上,我们希望显示消息,然后3秒后它会更改为另一条消息。

我做错了什么?

~jquery noob。

4 个答案:

答案 0 :(得分:2)

请改用setTimeout。延迟仅适用于jQuery效果(例如slidUp,fadeIn):

    $(this).html("Opening Download Link.. Please wait");
    setTimeout(function() {
        $(this).html("Please run the installer after downloading");
    }, 3000);

答案 1 :(得分:2)

我在执行jQuery动画效果时才真正看到delay。可能有一种方法可以使用该方法来执行您想要的操作,但您可以轻松地回退到标准javascript setTimeout

实例:http://jsfiddle.net/TMgPD/

$('a#installfc').click(function(e){
        e.preventDefault();
        window.open("http://www.site.com/ads/tr.php?src=source");    
        $this = $(this);
        $this.html("Opening Download Link.. Please wait")
        setTimeout(function(){
                    $this.html("Please run the installer after downloading")
        },3000);
    });

答案 2 :(得分:1)

使用setTimeOut函数

答案 3 :(得分:0)

您可以一起使用延迟队列来获得所需的效果。

$(this).html("Text 1").delay(3000).queue(function(next) {
  $(this).html("Text 2");
  next();
});

一般来说,我认为你会坚持使用 setTimeout ,因为该方法可以让你获得更多控制,而且通常更合适。