2017-01-27 1 views
0

Webページにアクティビティがないときにアラートやポップアップを表示する方法については、さまざまなトピックがあります。JQueryページがx秒間アイドル状態である場合に警告を表示しますが、一度だけ実行します。

しかし、実際の例は実際には何もしません。

ウェブページを読み込みます。いずれかの時点で、5秒のアイドル時間がある場合は、アラートを表示します。 ユーザーがページとやりとりすると(アラートをクリアし、マウスを動かすなど)、アラートはクリアされ、それが消去されます。私はそれがアイドル時間の5秒ごとに繰り返されることを望んでいません。

私が見てきたのは、 https://github.com/thorst/jquery-idletimer私がしたいと思われるもので、destroyオプションがあります。

// stop the timer, removes data, removes event bindings 
// to come back from this you will need to instantiate again 
// returns: jQuery 
$(document).idleTimer("destroy"); 

しかし、いったんアクティビティが再開すると、私はそれを停止するように苦労しています。

ここにはfiddleがあります。

activeと表示されるページの負荷が2秒間何もしないと、idleになります。マウスをもう一度動かせば、それはactiveとなり、その時点で、私はそれ以上アイドルチェックをしたくないので、タイマーを無効にする必要があります。

私はこれをどのように行うことができますか? active.idleTimer関数に以下を追加する

** UPDATE **

は非アクティブの第二の期間ではなく動作します。新Fiddle

$(document).idleTimer("active"); 
$(document).idleTimer("destroy"); 

おかげ

答えて

1

私はあなたのfiddleを更新しましたが、ここで私はそれがすでにアイドルメッセージが示されているかどうかをマークするフラグ変数を使用しました。

var idleFlag; 
    $(document).on("idle.idleTimer", function(event, elem, obj) { 
    if (!idleFlag) { 
     idleFlag = true; 
     $("#state").html("idle"); 
    } 
    }); 
+0

ありがとうございました。 – Tom