0

ユーザーの活動をログに記録したい。StackOverflow に関する他のユーザーの回答によると、小さな jQuery ライブラリを作成しました。

var stop_timeout = false;
$(window).blur(function(){
    elvis('left the building since ');
}).focus(function(){
    elvis('come back now:');
}).mousemove(function() {
    zima();
}).keyup(function() {
    zima();
});

function elvis(ce) {
    var now=new Date();
    $('.showMe').append('Elvis ' + ce + now.getHours() + ':' + now.getMinutes() +':'+now.getSeconds()+'<br>');
}

function zima() {
   clearTimeout(stop_timeout);
   stop_timeout = setTimeout(function() {
       $('.showMe').append('No activity since 10 seconds...<br>');
   }, 10000);
}

およびhtml:

<input type="text" size="20"> 
<div class="showMe"></div>

コードは問題なく動作しており、明らかに、window をぼかしたりフォーカスしたりしても、mousemove および keyup イベントが発生します。私が必要とするのは、$(window).focus() でのみ mousemove と keyup を起動することです

ありがとうございました !

編集: また、ここで Jfiddle を作成しました: http://jsfiddle.net/6RLBQ/5/

4

2 に答える 2

0

私はあなたがあなたのようにkeyup eventトリガーする必要があると思います,input element

$('input').keyup(function () {
    zima();
});

完全なコード

var stop_timeout = false;

$(document).blur(function () {
    elvis('left the building since ');
}).focus(function () {
    elvis('come back now:');
}).mousemove(function () {
    zima();
});

$('input').keyup(function () {
    zima();
});
于 2013-06-13T11:50:19.603 に答える
0

ばかげた質問で申し訳ありません。私は今それを得ると信じています。mousemove() と keyup() はデフォルトで $(window) にバインドされており、ウィンドウ フォーカスでのみ起動します。質問終了!

于 2013-06-13T12:40:39.017 に答える