1

我从来没有在 jquery 中编程过。我正在使用 JQuery Countdown 插件在我调用 php 页面时进行倒计时,但计时器不会重新启动。我需要编写一个重启函数来调用 JQuery Countdown 插件的 'onExpiry' 事件。这是我在 html 页面上的脚本。我正在关注这篇文章: 自动重启/重置倒数计时器 ,但我认为该帖子中的解决方案不起作用,因为与日期有关。我需要随机重启最多 2 小时。谢谢.....

$(document).ready(function () {
    function randRange() {
        var newTime = Math.floor(Math.random() * 30001) + 10000;
        return newTime;
    }

    function toggleSomething() {
        $('#timeval').load('ajaxTime.php?randval=' + Math.random());
        clearInterval(timer);
        lollo = parseInt(randRange());
        timer = setInterval(toggleSomething, lollo);
        $('#msg').fadeOut("slow").countdown({ *onExpiry:?????* until : +(lollo / 1000),
            format : 'HMS',
            layout : '<div id="timer">' + '<div class="timer_numbers">{hnn}:{mnn}:{snn}</div>' + '</div>'
        }).fadeIn("slow");
    }
    var timer = setInterval(toggleSomething, 1000);
});

编辑:

我解决了:

$('#msg').countdown({until: +(lollo/1000), onExpiry: function() { setTimeout(function() { $('#msg').countdown('change', {until: +((lollo/1000) - 1)}); }, 1000); }, format: 'HMS', layout:
    '<div id="timer">'+
        '<div class="timer_numbers">{hnn}:{mnn}:{snn}</div>'+
    '</div>'
    });

如果有人有更好的解决方案,请联系我 pro-zac31[at]libero.it .... !!! 谢谢 :)

4

1 回答 1

0

这个怎么样:

$(function() {
    function randRange() {
        return Math.floor(Math.random() * 30001) + 10000;
    }

    (function resetTimer() {
        $('#msg').fadeOut("slow", function() {
            $(this).countdown('destroy').countdown({
                until: randRange() / 1000,
                format: 'HMS',
                layout: '<div id="timer">' + '<div class="timer_numbers">{hnn}:{mnn}:{snn}</div>' + '</div>',
                onExpiry: resetTimer
            }).fadeIn("slow");
        });
    })(); //self-execute
});
于 2012-06-11T01:08:25.997 回答