第一次使用tab加载页面时,由于页面内容是由dataTables负责渲染,tab页的宽度会成为0。这时datables读取它的容器的宽度时获取的值就是0,计算添加了滚动条(宽度为0或者设定值)的table宽度时就会产生负数。IE下赋值异常。
原代码:
//这时width要赋值为负数 n.style.width = _fnStringToCss($(n).outerWidth()-oSettings.oScroll.iBarWidth );
新代码:
/* * 如果容器($(n))的width为0会造 *成$(n).outerWidth()-oSettings.oScroll.iBarWidth的值为负数 * 在IE中这种情况下会报错,造成dataTables初始化失败 * by apusic */ if($(n).outerWidth()-oSettings.oScroll.iBarWidth < 0){ n.style.width = "0px"; }else{ n.style.width = _fnStringToCss( $(n).outerWidth()-oSettings.oScroll.iBarWidth ); }