Javascript jQuery resize()函数导致堆栈溢出异常
我需要在我的网页上处理div的大小调整。问题是我不知道为什么resize函数会导致stackoverflow异常。你能解释一下我做错了什么吗 下面是一个JSFIDLE示例:Javascript jQuery resize()函数导致堆栈溢出异常,javascript,jquery,html,css,stack-overflow,Javascript,Jquery,Html,Css,Stack Overflow,我需要在我的网页上处理div的大小调整。问题是我不知道为什么resize函数会导致stackoverflow异常。你能解释一下我做错了什么吗 下面是一个JSFIDLE示例: 函数start(){ $(文档).ready(函数(){ $(“#divId”).off('resize').on('resize',function(){ }); $(窗口).bind('resize',函数(){ $(“#divId”).resize(); }); }); } 在JSFIDLE中,我提供了导致堆栈溢出
函数start(){
$(文档).ready(函数(){
$(“#divId”).off('resize').on('resize',function(){
});
$(窗口).bind('resize',函数(){
$(“#divId”).resize();
});
});
}
在JSFIDLE中,我提供了导致堆栈溢出的任何窗口大小调整。我用的是最新的chrome,Win7
任何帮助都将不胜感激。请过目。您应该将回调/处理程序传递给resize()
$(窗口)。调整大小(函数(){
$(“#log”).append(“调用了.resize()的处理程序”);
});
请过目。您应该将回调/处理程序传递给resize()
$(窗口)。调整大小(函数(){
$(“#log”).append(“调用了.resize()的处理程序”);
});
您正在创建一个无限循环,一旦调整窗口大小就会触发该循环。当然,它是溢出的。调整大小
事件气泡,这就是为什么。停止它的传播或者改变你的逻辑或者@Patel我知道这是一个无限循环。我的div应该可以由用户调整大小,所以我想用整个窗口处理div的大小调整和这个div的大小调整。@AdamMrozek我的div应该可以由用户调整大小
所以发布相关的有问题的代码您正在创建一个无限循环,一旦您调整窗口大小就会触发该循环。当然,它是溢出的。调整大小
事件气泡,这就是为什么。停止它的传播或者改变你的逻辑或者@Patel我知道这是一个无限循环。我的div应该可以由用户调整大小,所以我想用整个窗口处理div的大小调整和这个div的大小调整。@AdamMrozek我的div应该可以由用户调整大小
所以发布相关的有问题的代码本身这与OP的问题无关如果我们使用回调,它不会给出任何错误/问题。这是窗口大小调整处理程序,但是这个div可以为用户调整大小。我想处理这两个操作。但是“设置回调”是绑定一个新事件,而不是触发它。是的,我想你是对的@a.Wolff。这不是一个解决方案。这与OP的问题无关。如果我们使用回调,它不会给出任何错误/问题。这是窗口大小调整处理程序,但用户可以调整此div的大小。我想处理这两个操作。但是“设置回调”是绑定一个新事件,而不是触发它。是的,我想你是对的@a.Wolff。这不是一个解决办法。
<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>
$( window ).resize(function() {
$( "#log" ).append( "<div>Handler for .resize() called.</div>" );
});