空闲计时器不工作

时间:2011-12-12 15:57:44

标签: javascript jquery jquery-ui jquery-plugins

下面有两个jQuery空闲计时器,另一个是类似的代码,超时值高于第一个。我评论了第二个的超时值。这两个脚本在同一个xhtml页面上运行。当弹出第一个模态(一个具有较低超时的模式)时,我无法关闭它,也不会在“myTimeout”值之后进入重定向页面。

(function($){
            var timer;
            //var timeout = 600000;
            //var myTimeOut = 120000;
            var timeout = 120000;
            var myTimeOut = 60000;
                $(document).bind("idle.idleTimer", function(){
                  $( "#popup-modal" ).dialog({ 
                    modal: true,
                    autoOpen: true,
                    width: 574,
                    resizable : false,
                    draggable:false,
                    open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); $(".ui-dialog-print").hide(); $(".ui-icon").hide(); },
                    show: {effect: 'fade'} 
                    });
                timer = window.setTimeout(function()
                {  window.location.href = "redirectpage.xhtml";},myTimeOut);
                });
            $(document).bind("active.idleTimer", function(){
                timeout = 120000;
               window.clearTimeout(timer);
            });
            $.idleTimer(timeout);
        })(jQuery);

1 个答案:

答案 0 :(得分:1)

您是否尝试为对话框的关闭事件添加处理程序?

(function ($) {
    'use strict';
    var timer;
    var timeout = 120000;
    var myTimeOut = 60000;
    //var timeout = 600000;
    //var myTimeOut = 120000;
    function resetRedirectTimer() {
        timeout = 120000;
        window.clearTimeout(timer);
    };
    $(document).bind('idle.idleTimer', function () {
        $("#popup-modal").dialog({
            'modal': true,
            'autoOpen': true,
            'width': 574,
            'resizable': false,
            'draggable': false,
            'close': function (event, ui) {
                resetRedirectTimer();
            },
            'open': function (event, ui) {
                $('.ui-dialog-titlebar-close').hide();
                $('.ui-dialog-print').hide();
                $('.ui-icon').hide();
            },
            'show': {
                'effect': 'fade'
            }
        });
        timer = window.setTimeout(function () {
            window.location.href = 'redirectpage.xhtml';
        }, myTimeOut);
    });
    $(document).bind('active.idleTimer', function () {
        resetRedirectTimer();
    });
    $.idleTimer(timeout);
}(jQuery));

此外,在打开对话框时,您似乎隐藏了用于关闭对话框的默认控件。 你还有一个按钮(或其他控件)用来关闭对话框吗?

最后,为了澄清问题,看起来您希望在60秒不活动后重定向用户,但如果再次激活则取消重定向。

这是你想要完成的事情吗?

希望这有帮助。

皮特