use*_*557 1 javascript jquery timeout
我在加载屏幕上有一些代码,在用户登录前等待五秒钟:
setTimeout(
function() {
$.doPost("http://mysite.com", {
username: results.rows.item(0).username,
password: results.rows.item(0).password
});
}, 5000);
Run Code Online (Sandbox Code Playgroud)
在页面等待的同时,屏幕上还有一个"退出"按钮,如果点击,则需要发布此帖子.基本上,用户在自动登录之前有五秒钟点击注销.注销按钮有一个onClick,无论我放在该功能中,它继续登录,我怎么能让那个按钮停止$.doPost发生?
首先,将超时分配给变量:
var timer = setTimeout(
function () {
$.doPost("http://mysite.com", {
username: results.rows.item(0).username,
password: results.rows.item(0).password
});
}, 5000);
Run Code Online (Sandbox Code Playgroud)
然后,在您的注销按钮代码中使用clearTimeout():
$('#button').click(function () {
clearTimeout(timer);
}
Run Code Online (Sandbox Code Playgroud)
但要注意变量的范围,因为它在两个单独的函数中使用.在这种情况下,在全局命名空间中声明它可能是一个好主意:
var timer;
$('#login').click(function () {
timer = setTimeout(
function () {
$.doPost("http://mysite.com", {
username: results.rows.item(0).username,
password: results.rows.item(0).password
});
}, 5000);
});
$('#logout').click(function () {
clearTimeout(timer);
});
Run Code Online (Sandbox Code Playgroud)
如果你把两个事件都放进去$(document).ready(),你可以var timer在那里申报,以阻止任何污染.