IE之动态添加DOM节点触发window.resize事件_javascript技巧
程序员文章站
2022-04-07 19:25:19
...
然后页面有几个事件是动态地增加DOM元素的,比如点击某个层会在底下列出该层详细内容,这样在FF和chrome下没出现问题,但是在IE6-8下每次都重布局了.
比如我拖动一个层,在拖动过程中层的内容又显示在最底下了,当我放开层的时候这个层就跳回拖动前的位置了...
起先我还没看出来是重布局了...然后演示了N久,挣扎了N久,终于觉得可能是由于动态增加DOM节点导致触发window.resize而使页面重布局了...
最后我不由地在心里喊了句"Thank godness....",还好改变窗口的高度对页面布局没有影响,不然真要麻烦死了...
bindResizeWindow:function(){
var obj = this;
$(window).resize(function(){
var newWidth = $(window).width();
if(newWidth == obj.windowWidth){return;}
obj.initUI();
obj.createUI();
obj.windowWidth = newWidth;
});
},
只要在绑定方法中判只有宽度改变时才触发重布局事件就行了...
比如我拖动一个层,在拖动过程中层的内容又显示在最底下了,当我放开层的时候这个层就跳回拖动前的位置了...
起先我还没看出来是重布局了...然后演示了N久,挣扎了N久,终于觉得可能是由于动态增加DOM节点导致触发window.resize而使页面重布局了...
最后我不由地在心里喊了句"Thank godness....",还好改变窗口的高度对页面布局没有影响,不然真要麻烦死了...
复制代码 代码如下:
bindResizeWindow:function(){
var obj = this;
$(window).resize(function(){
var newWidth = $(window).width();
if(newWidth == obj.windowWidth){return;}
obj.initUI();
obj.createUI();
obj.windowWidth = newWidth;
});
},
只要在绑定方法中判只有宽度改变时才触发重布局事件就行了...