如果您正在使用Tablesorter Jquery插件,则表格中的分页器添加将不会显示任何数据。数据存在,但它是隐藏的。
我怀疑该插件的浏览器功能检测方法无法处理IE11。
其他人遇到这个?
答案 0 :(得分:28)
似乎IE11的userAgent存在问题。 一个转变是改变clearTableBody函数(在jquery.tablesorter-2.0.3.js中工作),如下所示:
this.clearTableBody = function (table) {
//if ($.browser.msie) {
function empty() {
while (this.firstChild) this.removeChild(this.firstChild);
}
empty.apply(table.tBodies[0]);
//} else {
// table.tBodies[0].innerHTML = "";
//}
};
答案 1 :(得分:20)
这是因为Internet Explorer 11的用户代理字符串不包含“MSIE”,因此jQuery无法正确识别它(请参阅this question)。
但实际上,TableSorter Pager 代码不需要知道哪个浏览器正在运行代码。更改函数clearTableBody
以改为使用jQuery的跨浏览器实现:
this.clearTableBody = function(table) {
$(table.tBodies[0]).empty();
};
我已经在IE8,IE9,IE11,Chrome 31和Firefox 24中对此进行了测试。
(刚才,我发现了一个带有TableSorter分支的GitHub仓库,可能已经解决了这个问题:https://github.com/Mottie/tablesorter)
答案 2 :(得分:4)
我们遇到同样的问题。 我已经直接向微软提交了一张票。
等等......看看......
https://connect.microsoft.com/IE/feedback/details/806279/bug-when-sorting-with-a-jquery-plugin
答案 3 :(得分:-1)
一个简单的解决方法 - 更改jquery.tablesorter.js中的行
if($.browser.msie)
来:
if(/msie/.test(navigator.userAgent.toLowerCase()) || window.navigator.userAgent.indexOf("Trident/7.0") > 0)
适合我。
/msie/.test(navigator.userAgent.toLowerCase())
检测到IE 10或更低版本。
window.navigator.userAgent.indexOf("Trident/7.0") > 0
检测到IE 11。