Таймер простоя не работает

У меня есть два таймера бездействия 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 ответ

Вы пытались добавить обработчик для события закрытия диалога?

(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 секунд бездействия, но отмените перенаправление, если они снова станут активными.

Это то, чего вы пытаетесь достичь?

Надеюсь это поможет.

Пит

licensed under cc by-sa 3.0 with attribution.