有人可以向我解释我的代码下面有什么问题吗?我正在声明一个公共变量并将其设置为setTimeout,如果不是null,则在再次设置之前清除超时。当我尝试清除超时时,我得到未定义,所以超时继续运行。JavaScript clearTimeout返回undefined
var usernameCheckTimeout = null;
$(document).ready(function(){
$("#username").on("keyup", function(e){
if($(this).val().length >= 6)
{
if(usernameCheckTimeout != null)
{
clearTimeout(usernameCheckTimeout);
}
usernameCheckTimeout = setTimeout(isUsernameAvailable($(this).val()), 1000);
}
});
});
function isUsernameAvailable(username)
{
$.ajax({
url : "/account/username-check",
method : "POST",
dataType : 'json',
data : {
'username' : username
}
}).done(function(data) {
console.log(data);
});
};
+1我错过了'this'问题。 –