Вы можете использовать .data()
и включить таймер задержки, который сбрасывает каждое нажатие клавиши следующим образом:
$('#DocId').live('keyup', function() {
clearTimeout($.data(this, 'timer'));
var val = $(this).val();
var wait = setTimeout(function() {
$('#tableContent').load('/CurReport/TableResults', { style: val });
}, 1000);
$(this).data('timer', wait);
});
Устанавливает тайм-аут в 1 секунду при каждом нажатии клавиши на элементе, который он набрал (может иметь любое количество нажатий одновременно). Каждое нажатие клавиши очищает предыдущий таймер и устанавливает новый, так что только через 1 полную секунду отсутствия ввода функция сработает.
Примечание: не удаляйте часть var val = $(this).val();
, вам нужна переменная, потому что this
- это другой контекст, когда функция фактически выполняется.