【问题标题】:How to make a jquery countdown timer connected to ajax action?如何使 jquery 倒数计时器连接到 ajax 动作?
【发布时间】:2013-07-13 20:19:31
【问题描述】:

当您单击操作时,我希望在我的系统上完成,菜单被隐藏(禁用)并替换为倒数计时器。在倒数计时器到时,我希望菜单被取消隐藏并向下滑动。

当我执行操作时,我会隐藏你运行良好的菜单。但是当它可用时倒计时时,我搜索了一些并找到了这个并更改它以尝试一下。但这似乎没有任何作用。

这是定时器代码:

 var coolDownTime = 10;

    function coolDownTimer() {
        setTimeOut (function() {
            if(coolDownTime != 0) {
                coolDownTime--;

                coolDownTimer();
            } else {
                $("#target_area").slideDown('medium');
            }
        }, 1000);
    }

这是我隐藏菜单的方法:

 $('[name=action]').click(function () { 
   $("#target_area").slideUp('medium');

   return false;
 });

我在这里做了一些其他的 ajax 来执行一些操作,然后我向上滑动菜单。

此时我希望开始倒计时,当倒计时结束时,我想要 操作返回,以便他们可以选择再次继续。

我认为当前方法的问题在于,如果我将该计时器代码放在同一个 click 语句中,我会将菜单隐藏在其中,它就会完全停止工作。我很失落。有没有人做过类似的事情并知道解决方案?

【问题讨论】:

    标签: php javascript jquery ajax pdo


    【解决方案1】:

    经过一点点挖掘和逻辑,我想出了这个。 .

    $('.trigger').on('click', function(e) {
        $(this).html('show')
        $('.show').slideUp('medium');
        var count = 10,
            counter = setInterval(timer, 1000);
    
        function timer() {
            count--;
            if (count <= 0) {
                clearInterval(counter);
                $('.trigger').html('hide');
                $('.show').slideDown('medium');
                return;
            }
            console.log(count);
            $('.timer').html(count);
        }
    
    });
    

    Fiddle

    【讨论】:

    • 这实际上工作得很好,但是我如何让倒计时在隐藏时出现,这样你才能真正看到它?您还知道如何确保他们不能只刷新页面并重置它吗?
    猜你喜欢
    • 2012-01-09
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    相关资源
    最近更新 更多