У меня есть элемент #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
. Но у меня до сих пор нет четкого представления о том, что еще я мог бы попробовать.