2015-07-16 2 views
1

Мне нужно обработать изменение размера div на моей веб-странице. Проблема в том, что я не знаю, почему функция resize вызывает исключение stackoverflow. Можете ли вы объяснить мне, что я делаю неправильно?Функция jQuery resize() вызывает исключение переполнения стека

Вот jsfiddle пример: https://jsfiddle.net/u9q4k4ce/

<html> 
<head> 
<script type="text/javascript" src="jquery.js"></script> 
<script> 
    function start() { 
     $(document).ready(function() { 
      $("#divId").off('resize').on('resize', function() { 
      }); 

      $(window).bind('resize', function() { 
       $("#divId").resize(); 
      }); 
     }); 
    } 
</script> 

</head> 
<body onload="start()"> 
<div id="divId" style="position:absolute;left:0px;right:0px;top:0px;bottom:0px;"></div> 
</body> 
</html> 

В jsfiddle я предоставил любое окно размер вызвать переполнение стека. Я использую новейший хром, выигрыш 7.

Любая помощь будет оценена.

+0

Вы создаете бесконечный цикл, который запускается после изменения размера окна. Конечно, он переполнен. – Patel

+0

'resize' события пузыри, вот почему. Остановите его распространение или измените логику https://jsfiddle.net/u9q4k4ce/1/ или https://jsfiddle.net/u9q4k4ce/2/ –

+0

@Patel Я понимаю, что это бесконечный цикл где-то. Мой div должен быть изменен пользователем, поэтому я хотел бы обрабатывать размер div и изменять размер этого div со всем окном. –

ответ

0

Просьба пройти https://api.jquery.com/resize/. вы должны передать обратный вызов/обработчик для изменения размера().

$(window).resize(function() { 
    $("#log").append("<div>Handler for .resize() called.</div>"); 
}); 
+0

Это не имеет ничего общего с проблемой OP –

+0

, если мы используем обратный вызов, это не дает никакой ошибки/проблемы. – jrath

+1

Найти ссылку http://jsbin.com/tesalofero/edit?html,output – jrath

Смежные вопросы