Я вижу проблему, которую вы описываете, только если размер элемента на странице изменен (, как описано в этом вопросе ). Ваш пример не работает для меня, но я предполагаю, что вы добавляете консольное сообщение в log
div, который у вас там есть, что означает, что он изменяет размер div и вызывает событие изменения размера окна.
Ответ, который дал Ли, правильный, но метод в ссылке не сработал для меня. Вот что я сделал:
var handleResize = function(){
$(window).one("resize", function() {
console.log('Handler for .resize() called');
setTimeout("handleResize()",100);
});
}
handleResize();
Таким образом, обработчик освобождается, как только он запускается, и связывается только после того, как вы завершили все свои действия, которые могут повторно вызвать изменение размера страницы. Я добавил setTimeout, чтобы обеспечить дополнительное регулирование. Увеличьте значение, если ваши сценарии требуют больше времени.