我有一个网页,其中onResize调用一个方法,该方法通过提交返回同一页面的表单来重新加载页面。
此网页非常大,其中的某些内容会调整页面大小或类似的内容,导致再次调用onResize事件。
停止这种无限循环的解决方案是什么?
我找不到导致onResize事件被调用的原因,即使我这样做了,我也不想改变任何已经有效的东西。
我可以在resize方法中添加任何内容来阻止它进入一个inifite循环
$(window).resize(function(){
refreshMainView(); // submits form which redirects back to the same page
});
答案 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');
});