onResize()重新加载我的网页,导致onResize()再次加载时再次调用

时间:2013-05-15 09:39:45

标签: javascript jquery html internet-explorer-8

我有一个网页,其中onResize调用一个方法,该方法通过提交返回同一页面的表单来重新加载页面。

此网页非常大,其中的某些内容会调整页面大小或类似的内容,导致再次调用onResize事件。

停止这种无限循环的解决方案是什么?

我找不到导致onResize事件被调用的原因,即使我这样做了,我也不想改变任何已经有效的东西。

我可以在resize方法中添加任何内容来阻止它进入一个inifite循环

$(window).resize(function(){
     refreshMainView(); // submits form which redirects back to the same page
});

2 个答案:

答案 0 :(得分:0)

编辑:响应user521180的评论而敲出。)将您的监听器置于document.ready函数内:

$(function () {
    $(window).resize(function(){
        refreshMainView(); // submits form which redirects back to the same page
    });
});

听起来您的页面正在侦听resize事件,同时它仍在添加DOM元素(因此仍在计算页面大小)。

如果您已经有document.ready函数,则尝试解除resize函数中onbeforeunload事件的绑定,然后重新绑定它页面刷新:

$.unload(function () {
    $(window).unbind('resize');
});

答案 1 :(得分:0)

在您第一次调用它时解除绑定:

$(window).resize(function(){
     refreshMainView(); // submits form which redirects back to the same page

     // now unbind it
     $(window).unbind('resize');
});