Как я могу вызвать onResume в плагине iquest iimeTimeout? - PullRequest
0 голосов
/ 08 октября 2011

Я пытаюсь изменить функциональность плагина jQuery IdleTimeout Эрика Хиндса , но мне не везет. Когда вызывается onTimeout, я пытаюсь вызвать функцию onResume, чтобы снова запустить таймер, а затем закрыть диалоговое окно. Когда он работает, вы должны увидеть диалоговое окно при простое, а затем исчезнуть, а затем снова появиться после того же времени простоя - в цикле. Почему петля? Я собираюсь добавить больше к вызову onTimeout, как только эта часть заработает.

Вот мой код, я знаю из firebug, что моя проблема в том, как я запускаю вызов onResume (строка 9). Плагин связывает вызов onResume с событием click через диалоговое окно, но, очевидно, в этом случае пользовательский щелчок не будет.

$.idleTimeout('#dialog', 'div.ui-dialog-buttonpane button:first', {
    idleAfter: 5,
    warningLength: 5,
    pollingInterval: 2,
    keepAliveURL: 'keepalive.php',
    serverResponseEquals: 'OK',
    onTimeout: function(){
        $(this).dialog('close');
        self.onResume();
    },
    onIdle: function(){
        $(this).dialog("open");
    },
    onCountdown: function(counter){
        $countdown.html(counter); // update the counter
    }
});

Спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 08 октября 2011

Плагин связывает вызов onResume с событием click через диалог окно, но, очевидно, в этом случае пользовательский щелчок не будет.

Это не совсем так. Плагин связывает ссылку «Возобновить» с внутренней функцией, которая фактически проверяет связь с сервером, , а затем вызывает любой обратный вызов onResume, который вы определили. Вы пытаетесь вызвать onResume () напрямую - это нормально, но на самом деле возобновление сеанса не будет.

Возможно, вам лучше подражать клику по ссылке Resume напрямую, например так:

 onTimeout: function() {
   $(this).dialog('close');
   $(this).data('idletimeout').resume.trigger('click');
 },
0 голосов
/ 08 октября 2011

"Плагин связывает вызов onResume с событием click через диалоговое окно, но, очевидно, в этом случае пользовательский щелчок не будет."

Опция -

Событие click может быть запущено программно с помощью триггера jquery api.например,

$(this).trigger('click');

http://api.jquery.com/trigger/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...