ユーザーが入力を一時停止したときに(キーを押すたびにではなく)、ajaxアクションを起動したい。だから私はこのようなものを作りました:
ユーザーがアイドル状態になってから 3 秒後に入力を停止すると、機能が実行されます... (しかし、長いフレーズの場合はなぜ 3 回なのか - キーダウンごとにタイムアウトをクリアするため、1 回だけ実行されると予想されます)。何が問題ですか ?
var timer;
var interval = 3000;
$('#inp').keyup(function() {
timer = setTimeout(done, interval);
});
$('#inp').keydown(function() {
clearTimeout(timer)
});
function done() {
console.log('ajax');
}
jsfiddle での作業例: http://jsfiddle.net/vtwVH/