次の方法でテキスト ボックスにキー入力された入力に基づいて、いくつかのフィルター操作を実行しています。
$("#search").on('change keyup', function () {
var search = $.trim($(this).val());
...perform search based operation
});
私が直面している問題は、入力がすばやく入力されると、取得された最新の値.val()
が常に最新ではないということです。たとえば、検索変数の値をコンソールに記録し、「jquery」を検索する場合。これは、すばやく入力したときに記録されるものです。
ログ: j
ログ: j
ログ: j
ログ: j
ログ: j
ログ: j
キーストロークを遅くすると、正しい結果が得られます。
ログ: j
ログ: jq
ログ: jqu
ログ: jque
ログ: jquer
ログ: jquery
検索ベースの操作を削除して.on
キーストロークをログに記録すると、すべてが正しくログに記録されます。これは何らかのタイミングの問題である可能性がありますが、これが既知のものであるかどうかはわかりません。これをIE9 / jQuery 1.9.1に対して実行しています。誤った値の原因は何ですか?
更新: フィドル: http://jsfiddle.net/bPuJ5/15/