2

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

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

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

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

有什么我可以添加到我的 on resize 方法来阻止它进入无限循环

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

2 回答 2

0

第一次调用它时取消绑定它:

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

     // now unbind it
     $(window).unbind('resize');
});
于 2013-05-15T09:50:43.430 回答
0

编辑:删除以响应 user521180 的评论。)将您的侦听器放入document.ready函数中:

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

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

如果您已经有一个document.ready函数, t尝试resize在函数中取消绑定事件,onbeforeunload然后在页面刷新后重新绑定它:

$.unload(function () {
    $(window).unbind('resize');
});
于 2013-05-15T09:44:01.833 回答