Tag: debouncing

停止input/写入后如何在input文本中触发事件?

我想在我input文本框中停止键入(而不是在键入)字符后立即触发一个事件。 我试过: $('input#username').keypress(function() { var _this = $(this); // copy of this object for further usage setTimeout(function() { $.post('/ajax/fetch', { type: 'username', value: _this.val() }, function(data) { if(!data.success) { // continue working } else { // throw an error } }, 'json'); }, 3000); }); 但是这个例子为每个input的字符都产生一个超时,如果input20个字符,我会得到大约20个AJAX请求。 在这个小提琴,我演示了一个简单的警报,而不是一个AJAX相同的问题。 有没有这样的解决scheme,或者我只是用一个坏的方法呢?