我刚刚发现了另一个可能对您有帮助的问题。
我正在使用jQuery,并且我有window.resize事件来调用一个函数,该函数将重新定位附加到主体的div。
现在,当我设置该附加div的LEFT css属性时,window.resize事件将触发“ NO GOOD REASON”。
这将导致无限循环,并再次触发window.resize。
没有修复的代码:
$(window).resize(function(){
var onResize = function(){
someMethod();
}
window.clearTimeout(resizeTimeout);
resizeTimeout = window.setTimeout(onResize, 10);
});
解:
var winWidth = $(window).width(),
winHeight = $(window).height();
$(window).resize(function(){
var onResize = function(){
someMethod();
}
var winNewWidth = $(window).width(),
winNewHeight = $(window).height();
if(winWidth!=winNewWidth || winHeight!=winNewHeight){
window.clearTimeout(resizeTimeout);
resizeTimeout = window.setTimeout(onResize, 10);
}
winWidth = winNewWidth;
winHeight = winNewHeight;
});
因此,基本上它将检查高度或宽度是否已更改(仅当您实际调整窗口大小时才会发生)。