【问题标题】:Why doesn't jQuery Tablesorter Plugin work on this Wordpress page?为什么 jQuery Tablesorter 插件在这个 Wordpress 页面上不起作用?
【发布时间】:2009-10-17 17:30:14
【问题描述】:

我在这个测试页面上有一个 Wordpress/jQuery 插件的工作示例:http://beerlyrics.com/jimmy-jones/

我将它硬编码到此页面的标题中,并且分页和过滤机制都可以正常工作。

我已将其转换为新页面,现在正在使用 wp_enqueue 调用我的所有脚本,因为它应该完成: http://farmball.com/boston/boston-red-sox/red-sox-roster/

为什么分页和过滤机制不再起作用?

我已确认这与 Firebug 中出现的 #baseball-table not defined 错误和audiplayer 错误无关。 #baseball-table 错误发生在两个站点上,我停用了导致音频播放器错误的插件,它对插件性能没有影响。

这里是js初始化的代码:

  jQuery(document).ready(function($) {
        $("#baseball-table").tablesorter({ debug: false, sortList: [[0, 0]], widgets: ['zebra'] })
                    .tablesorterPager({ container: $("#pager"), positionFixed: false })
                    .tablesorterFilter({ filterContainer: $("#filter-box"),
                        filterClearContainer: $("#filter-clear-button"),
                        filterColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8],
                        filterCaseSensitive: false
                    });  });

【问题讨论】:

  • 我不确定是什么导致了这个问题——这两个例子在 Chrome 中都不适合我。虽然它在 IE 8 中工作,但它抛出一个错误网页错误详细信息消息:预期函数行:15 字符:6 代码:0 URI:beerlyrics.com/wp-content/themes/classic/tablesorter_filter.js
  • 是的,Wordpress 说要以这种方式加载 js 文件,但它完全破坏了插件,所以我不得不将该行改回 function($)。在另一个网站上,如果我硬编码到标题中,我可以加载它,但我试图弄清楚为什么它不会使用“正确”方式加载(不是硬编码,而是使用 wp_enqueue)。
  • 开发人员将输入框移到了表格之外,这破坏了 Chrome(可能还有 Safari)中的解析器。

标签: javascript jquery wordpress tablesorter


【解决方案1】:

【讨论】:

  • Wordpress 附带的 jQuery 库以“无冲突”模式加载。为了像往常一样使用 $ 函数,请使用以下代码: jQuery(document).ready(function($) { // $() 将作为该函数内部的 jQuery() 的别名 });不幸的是,这样做会导致它完全中断,所以我不得不将它切换回 function($) { 我觉得我已经很接近了......
【解决方案2】:

我聘请了一位开发人员来解决此问题。奇怪,但解决方法是在 FTP 中的一个 js 文件的开头缺少 ( 虽然 cPanel 在文件开头显示了它。我使用 cPanel 但不知道它丢失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    相关资源
    最近更新 更多