我想记录用户活动。 根据其他用户对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>
代码工作正常,显然,即使我模糊或关注窗口,mousemove和keyup事件也会触发。 我需要的是只在$(window).focus()
上触发mousemove和keyup谢谢!
编辑:我也在这里做了一个Jfiddle:http://jsfiddle.net/6RLBQ/5/
答案 0 :(得分: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();
});
答案 1 :(得分:0)
对不起这个愚蠢的问题,伙计们。我相信我现在明白了。 mousemove()和keyup()默认绑定到$(window),它只在窗口焦点上触发。问题关闭!