Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery tablesorter寻呼机插件没有';在边缘模式下,IE11不能正常工作_Jquery_Jquery Ui_Internet Explorer_Internet Explorer 11 - Fatal编程技术网

JQuery tablesorter寻呼机插件没有';在边缘模式下,IE11不能正常工作

JQuery tablesorter寻呼机插件没有';在边缘模式下,IE11不能正常工作,jquery,jquery-ui,internet-explorer,internet-explorer-11,Jquery,Jquery Ui,Internet Explorer,Internet Explorer 11,如果您使用的是带有pager add的Tablesorter Jquery插件,那么表上将不会显示任何数据。数据在那里,但它是隐藏的 我怀疑插件的浏览器特性检测方法无法处理IE11 还有其他人遇到过这个问题吗?我们也有同样的问题。 我已经直接向微软提交了一张罚单 等等。。。看看 看来IE11的用户代理有问题。 一个转变是更改clearTableBody函数(在jquery.tablesorter-2.0.3.js中工作),如下所示: this.clearTableBody = function

如果您使用的是带有pager add的Tablesorter Jquery插件,那么表上将不会显示任何数据。数据在那里,但它是隐藏的

我怀疑插件的浏览器特性检测方法无法处理IE11

还有其他人遇到过这个问题吗?

我们也有同样的问题。 我已经直接向微软提交了一张罚单

等等。。。看看


看来IE11的用户代理有问题。 一个转变是更改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 = "";
    //}
};

这在某种程度上是由于InternetExplorer11有一个不包含“MSIE”的用户代理字符串,所以jQuery不能正确识别它(请参阅)

但实际上,TableSorter寻呼机代码不需要知道哪个浏览器正在运行代码。将函数
clearTableBody
改为利用jQuery的跨浏览器实现:

this.clearTableBody = function(table) {
    $(table.tBodies[0]).empty();
};
我已经在IE8、IE9、IE11、Chrome 31和Firefox 24中对此进行了测试


(刚才,我发现了一个GitHub repo,它带有一个表排序器分支,可能已经解决了这个问题:)

一个简单的解决方案-将jquery.TableSorter.js中的行从
if($.browser.msie)
to:

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。

粉碎了这个bug+1先生,那么为什么浏览器不是IE,它却直接写入innerHTML呢?这比while循环快吗?Mottie的tablesorter已经用
$(table)[0].config.$tbodies.children().detach()修复了这一问题
这是一种更详细的调用
.empty()
的方法。