我对javascript和jquery很新,并且无法理解settimeout。
我正在尝试做什么,只需点击即可启动计时器。它会将页面滑动到输入电子邮件的输入位置。如果,在20秒内,没有任何类型,我希望它做一些事情。但如果他们确实输入了某些东西,我希望20秒计时器重置为20秒onkeyup。最后,如果表单已提交,我希望超时被取消。
$('#button').click(function(){
$('#pane').scrollTo( '1000px', 500);
setTimeout(goback, 20000);
function goback() {
$('#pane').scrollTo ('0px', 500);
$('#input').keyup(function(){
clearTimeout(goback);
setTimeout(goback, 20000);
};
$('#submitemail').click(function(){
//form submit stuff
clearTimeout(goback);
});
请你指点我正确的方向......谢谢。
var timer;
$('#button').click(function(){
$('#pane').scrollTo( '768px', 0 );
$('#emailinput').delay(1000).focus();
$('#slide2fadeout').css("display", "block").fadeOut();
timer = setTimeout(goback, 20000); //in 20 seconds start goback function
function goback(){
$('#like').scrollTo( '0px', 0 ); //scroll back to top
$('#emailinput').val(''); //clear any partial entry
};
$('#emailinput').keyup(function(){
clearTimeout(timer);
timer = setTimeout(goback, 20000);
};
});
这是我的实际代码......似乎无法让它正常工作。任何帮助表示赞赏..谢谢。
答案 0 :(得分:3)
您需要在某处保存setTimeout
的返回值,以便稍后取消:
var timer;
$('#button').click(function () {
...
timer = setTimeout(goback, 20000);
...
clearTimeout(timer);
}