我在body标签上使用mousemove属性:
<body onload="StartTimers();" onmousemove="ResetTimers();">
</body>
我正在使用它来重置用户的登录会话。这工作正常,直到我在div中的这个body标签内添加一个下拉列表时,它会导致问题。 每当我尝试从下拉列表中选择值时,它就会消失,因为我正在移动光标并且触发了resetTimers()。
有些人可以帮我解决这个问题。
由于
var timoutWarning = 900000;
var timoutNow = 1200000;
var warningTimer;
var timeoutTimer;
// Start timers.
function StartTimers() {
warningTimer = setTimeout("IdleWarning()", timoutWarning);
timeoutTimer = setTimeout("IdleTimeout()", timoutNow);
}
// Reset timers.
function ResetTimers() {
clearTimeout(warningTimer);
clearTimeout(timeoutTimer);
StartTimers();
$("#dialog").dialog().dialog('close');
}
function IdleWarning() {
$("#dialog").dialog({
autoOpen: true,
modal: true,
width: 400,
title:'Alert'
});
}
function IdleTimeout() {
window.location.href = 'Logoff';
}
解答:
$("#dialog").dialog().dialog('close');
导致jquery问题。因此,一切都搞砸了。当用户点击&#34; OK&#34;我已将此更改为关闭对话框警报屏幕上的按钮.LIKE:
function IdleWarning() {
$("#dialog").text('Your session will be closed in 5 minutes due to inactivity. Click OK to continue.').dialog({
autoOpen: true,
modal: true,
width: 400,
title:'Alert'
,buttons: {
"OK": function () {
ResetTimers();
$("#dialog").dialog('close');
}
}
});
}
答案 0 :(得分:0)
问题在于,您要让mousemove
事件冒泡到body
元素。为mousemove
元素添加select
的事件处理程序,并使用stopPropagation()方法阻止事件冒泡。试试这个(假设您可能有多个选择)。
$('select').mousemove(function( event ) {
event.stopPropagation();
});
这应该可以解决问题。