Ответ 1
Типичный способ сделать это - с помощью setTimeout и clearTimeout:
var wto;
$('#select').change(function() {
clearTimeout(wto);
wto = setTimeout(function() {
// do stuff when user has been idle for 1 second
}, 1000);
});
Возможный дубликат:
Звонки вызовов в jQuery
Мне нравится функция .change() jQuery, но я бы хотел предотвратить запуск тонны запросов AJAX, когда пользователь быстро меняет параметры в выпадающем списке. Например, когда пользователь использует колесо прокрутки мыши, он будет запускать каждый параметр, поскольку они выбирают свою новую опцию.
Я хотел бы получить хороший чистый способ обработки только отправки этих обновлений после того, как пользователь перестанет обновлять выпадающее меню в секунду.
Есть ли опрятный способ справиться с этой ситуацией?
Типичный способ сделать это - с помощью setTimeout и clearTimeout:
var wto;
$('#select').change(function() {
clearTimeout(wto);
wto = setTimeout(function() {
// do stuff when user has been idle for 1 second
}, 1000);
});
Я рекомендую вам использовать underscore.js, а затем:
var newFunction=_.debounce(function (){
alert('You function, after use stop scroll')
},1000); //Wait seconds after he stops
$('#select').change(newFunction);
Подробнее о underscore.debounce.