【发布时间】:2011-03-07 17:52:52
【问题描述】:
作为question 的后续行动,我想知道为什么这不起作用
$("#textarea").keydown(function(){
oldValue = $("#textarea").val();
});
$("#textarea").keyup(function(){
var startTimer = null;
if(startTimer) clearTimeout(startTimer);
startTimer = setTimeout(function(){
var newValue = $("#textarea").val();
// get something out of the comparison
alert(something) // alert the comparison
oldValue = newValue;
},2000);
要求的行为是仅当用户在 2 秒内没有输入任何内容时才会收到警报消息。它与比较部分一样有效,但是,当我按应有的方式继续输入时,它不会停止警报消息。相反,我得到的警报数量与按下的键数量相同。 我尝试了一个创建和删除 cookie 的版本,效果很好。在这种特殊情况下有什么问题?
【问题讨论】:
-
var startTimer = null; if(startTimer) clearTimeout(startTimer); //条件永远不会为真...
-
@JAAulde:当然,你是对的。谢谢:-)
标签: javascript jquery settimeout jquery-events