У меня есть элемент #search
, который при возникновении события keyup
должен запускать функцию. Эта функция должна срабатывать только в том случае, если keyup
не произошло в установленное время (например, 500 миллисекунд). Это предотвратит обновление результатов поиска каждой нажатой буквой. Проблема в том, что в backbone.js мои события хранятся в хэше, а тот, который применим, выглядит следующим образом:
'keyup #search' : 'setSearch'
, которая вызывает функцию setSearch()
, когда происходит событие keyup
. Я не совсем понимаю, как справиться с этим на данный момент. Я пробовал разные вещи, но ничто не может поддерживать таймер после завершения функции.
У меня есть что-то вроде этого:
setSearch: function(event) {
var timer = window.setTimeout( function() {
// run function here
alert('fired');
}, 500);
},
вместо alert('fired')
у меня будет собственная функция. Я могу понять, почему этот код не работает (таймер установлен для каждого keyup
события, которое происходит. Но у меня все еще нет четкого представления о том, что еще можно попробовать.