jQuery 带有 jQuery 2.x 的表格排序器

jQuery Tablesorter with jQuery 2.x

如果我为 jQuery Tablesorter 和 运行 使用任何简单的示例,它在本地工作正常。如果我将本地 link 替换为 jquery-最新的 link 到 jquery 2.1.3 的 cdn,就好像 jQuery 尚未加载.您所要做的就是将此“<script type="text/javascript" src="./js/jquery-latest.js"></script>”中的 src 替换为
"cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js",好像jQuery没有加载。例如,在 Tablesorter 的 "pager" 演示代码中:tablesorter.com/docs/example-pager.html

我是不是遗漏了一些愚蠢、明显和令人尴尬的东西,或者 Tablesorter 不能与最新的 jQuery 一起使用,还是...?

如果您查看开发控制台(按 F12),您会看到 javascript 错误 - 在 this demo

中尝试

Uncaught TypeError: Cannot read property 'msie' of undefined

此错误仅在使用 jQuery v1.9+ 时出现。这是因为寻呼机代码使用插件的内部 clearTableBody 函数来检查 jQuery.browser 的 IE,并且因为该函数在 jQuery v1.9+ 中被完全删除,javascript发生错误。

所以你有三个选择。

  1. 切换到始终使用 jQuery 低于 v1.9。
  2. Modify the core plugin 并替换此代码:

    this.clearTableBody = function (table) {
        if ($.browser.msie) {
            while (table.tBodies[0].firstChild) {
                table.tBodies[0].removeChild(table.tBodies[0].firstChild);
            }
        } else {
            table.tBodies[0].innerHTML = "";
        }
    };
    

    有了这个

    this.clearTableBody = function (table) {
        $( table.tBodies[0] ).empty();
    };
    
  3. 或者,试试我的 fork of tablesorter,它不使用 jQuery.browser,但有很多增强功能、有用的小部件和解析器。遗憾的是,大多数小部件与原始表格排序器不兼容。