Я использую JQuery как таковой:
$(window).resize(function() { ... });
Однако кажется это, если человек вручную изменяет размер их окон браузера путем перетаскивания края окна для создания этого большим/меньшим, .resize
событие выше огней многократно.
Вопрос: Как я вызываю функцию ПОСЛЕ ТОГО, КАК окно браузера изменяет размер завершенный (так, чтобы событие только стреляло однажды)?
Я использую следующую функцию для задержки повторных действий, она будет работать в вашем случае:
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
Использование:
$(window).resize(function() {
delay(function(){
alert('Resize...');
//...
}, 500);
});
Переданная ей функция обратного вызова будет выполняться только при последнем вызове задержка была сделана по прошествии указанного периода времени, в противном случае таймер будет сброшен, я считаю это полезным для других целей, например, для определения того, когда пользователь перестал печатать, и т. д.