【发布时间】:2014-07-10 13:05:51
【问题描述】:
我正在为登录用户的会话时间打开一个花式框,在一段时间后,弹出窗口被禁用并且用户自动注销,但是如果我在弹出窗口之外单击,计数器时间设置为 0,所以它不是退出。
window.idleTime = 0;
jQuery(document).ready(function() {
//Increment the idle time counter every minute.
var idleInterval = setInterval(timerIncrement, 60000);
//Zero the idle timer on mouse movement.
jQuery(this).mousemove(function (e) {
idleTime = 0;
//alert(idleTime);
});
jQuery(this).keypress(function (e) {
idleTime = 0;
//alert(idleTime);
});
jQuery(".classname").live("click", function(){
//alert('');
idleTime = 0;
})
});
function timerIncrement() {
var timedouturl = "logout.php?sTimeOut=1";
//alert('Calling..');
idleTime = idleTime + 1;
if (idleTime > 2) { // 1 minutes
//alert('Time Out =>'+idleTime);
//window.location.reload();
jQuery.fancybox({
'type' : 'ajax',
'href' : 'popup.php',
'autoSize' : false,
'width' : 450,
'height' : 'auto',
afterLoad : function(){
//alert("IdleTime :"+idleTime);
setTimeout( function() {
jQuery.fancybox.close();
//alert("LastIdleTime :"+ window.idleTime);
if (window.idleTime > 2){
window.location.href = timedouturl;
}
},60000);
}
});
}
}
当弹出窗口在弹出窗口之外打开时,我想阻止每个 js 事件。有什么想法吗?
这里
jQuery(".classname").live("click", function(){
//alert('');
idleTime = 0;
})
用于在fancybox上单击确定按钮时。
【问题讨论】:
-
如果fancybox打开并且访问者移动鼠标,你想将
idleTime重置为0吗?所以没有注销? ...除非他们等待 1 分钟打开 fancybox? -
BTW
live()已弃用,请改用on()(需要 jQuery v1.7+)
标签: javascript jquery popup fancybox