我需要不断检查页面 MainContainer 尺寸上的修改,当发生这种情况时,我会将其尺寸修复为大于其中最大的元素(包装所有元素)。
如果有其他方法可以做到这一点不是我真正关心的。困扰我的是换一条线的效果。
我的代码是:
var pageMaxWidth = 0;
var pageMaxHeight = 0;
(function fixWidth()
{
var intervalCounter = 0;
var interval = setInterval(function(){
var intervalMaxWidth = 0;
var intervalMaxHeight = 0;
$("#MainContainer table").each(function(index,elem){
if($(elem).width()>intervalMaxWidth)
{
intervalMaxWidth=$(elem).width();
//console.debug("new interval width");
}
if($(elem).height()>intervalMaxHeight)
{
intervalMaxHeight=$(elem).height();
//console.debug("new interval height");
}
});
if(pageMaxWidth!=intervalMaxWidth)//I'm the referred if
{
$("#MainContainer").width(intervalMaxWidth);
pageMaxWidth=intervalMaxWidth;
console.debug("width fixed");
}
if(pageMaxHeight!=intervalMaxHeight)
{
$("#MainContainer").height(intervalMaxHeight);
pageMaxHeight=intervalMaxHeight;
console.debug("height fixed");
}
},500);
})();
如果在评论的 if(我是被推荐的 if)上,我会更改:
$("#MainContainer").width(intervalMaxWidth);
到
$("#MainContainer").width(intervalMaxWidth+40);
并在 Chrome 中运行脚本,它将始终增加 MainContainer 宽度,这意味着它将始终评估为 true pageMaxWidth!=intervalMaxWidth
。如果我不更改 intervalMaxWidth 值,怎么会发生这种情况?但实际上是加了40,因为我是通过控制台调试检查的。在 Firefox 中不会发生