【问题标题】:WordPress : How to make tablesort work with GenesisWordPress : 如何使表格排序与 Genesis 一起使用
【发布时间】:2015-08-31 09:29:47
【问题描述】:

我正在使用 WordPress 和 Genesis 框架以及一个子主题。我正在尝试使用 jQuery 插件 tablesorter 来制作可排序的表。我有一个由 PHP 在页面模板上创建的表,如下所示:

<table id="propTable" class="tablesorter">

在我的 functions.php 文件中,我有以下代码:

add_action( 'wp_enqueue_scripts', 'tablesort_script_add' );
function tablesort_script_add() {
  wp_enqueue_script(
    'jquery-tablesorter',
    get_stylesheet_directory_uri() . '/js/tablesorter-master/js/jquery.tablesorter.js',
    array('jquery')
  );
}

我已确保目录正确,但它似乎不起作用。我不知道是tablesorter js文件有问题,还是我正在使用覆盖或以其他方式干扰脚本的子主题/创世纪框架。

我需要编写另一个脚本文件来激活或实现特定表的表排序器也可能是个问题。如果有人可以让我知道我需要添加或修复其中的哪一个,并给我一些非常具体的、初学者级别的关于如何到达那里的说明,我将不胜感激!谢谢。

【问题讨论】:

  • 你包括jQuery吗?您在控制台中看到任何错误吗?
  • 我包含了 jQuery 作为上面 tablesorter 脚本的依赖项。我现在在控制台中收到一个错误,上面写着TypeError: $ is not a function。刷新脚本时会出现警报,尝试加载脚本时也没有收到 404,所以我知道它至少加载正确。
  • 包含 debug option 并查看它的内容:jQuery(function($) { $("#tablesorter").tablesorter( theme: 'blue', debug: true ); } ); - 您可能还想加载和包含主题。
  • 编辑:我让它工作了!事实证明,在创建表时我有一个循环,默认情况下为每一行分配了一个 标签,所以这只会导致第一行排序,这不是很有帮助哈哈。
  • 大声笑,请将其添加为答案,以便我可以投票,它可能会使其他人受益。

标签: php jquery wordpress tablesorter genesis


【解决方案1】:

我发现了自己的问题! 所以看起来我用来浏览帖子和创建表的循环实际上是为每一行创建一个新的<tbody> 标签,所以只有表的第一行被排序。

如果有人else 与 tablesorter 有同样的问题,我必须做的其他一些事情是确保我只加载了一个 jQuery(使用它作为依赖项就足够了),并确保你将 $ 作为参数传递给你的 jquery。表格排序器,因为 wordpress 自动使用 jquery 的 noconflict 模式,并且 $ 作为 jQuery 的全局变量无效。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签