Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery resize()函数导致堆栈溢出异常_Javascript_Jquery_Html_Css_Stack Overflow - Fatal编程技术网

Javascript jQuery resize()函数导致堆栈溢出异常

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中,我提供了导致堆栈溢出

我需要在我的网页上处理div的大小调整。问题是我不知道为什么resize函数会导致stackoverflow异常。你能解释一下我做错了什么吗

下面是一个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>" );
});