0

编辑3:它现在正在工作。感谢@Dimitar 的建议,包括重新排序和 apache 重启看起来现在已经解决了。谢谢你们。编辑 2 中显示的包含顺序是实际顺序。

编辑2:

检查我看到的包含 where 总是以相同顺序排列的文档,所以我重新排序了我的包含。现在没有错误,但它也不起作用。有谁知道为什么?

新命令:

<?php use_helper('Javascript','Form') ?>
<?php use_javascript('toggleTabActive') ?>
<?php echo javascript_tag("toggleTabActive(15)"); ?>
<?php use_javascript('/sfProtoculousPlugin/js/prototype.js'); ?>
<?php use_javascript('/sfProtoculousPlugin/js/effects.js'); ?>
<?php use_javascript('/sfProtoculousPlugin/js/controls.js'); ?>
<?php use_javascript('jquery-1.3.2.min.js'); ?>
<?php use_javascript('jquery-latest.js'); ?>
<?php use_javascript('jquery.tablesorter.min.js'); ?>
<?php use_stylesheet('tablesorter/style.css') ?>

编辑1:按照@Dimitar 的建议,我对jquery 使用了noconflict。现在:

<script type="text/javascript">
var $j = jQuery.noConflict();
$j(document).ready(function(){
$j(".urTable" ).tablesorter();
});
</script>

显示的错误是:

1:GET http://sdbweb/css/tablesorter/bg.gif 404 (Not Found)

2:Uncaught TypeError: Object #<Object> has no method 'dispatchEvent'

“1”必须是与 tablesorter CSS 包含的图像之一相关的路径问题。以后我会调查的。

“2”与prototype.js有关。我猜它也使用 JQuery,所以可能会在那里引起冲突。关于解决这种冲突的最佳实践有什么建议吗?

原来的:

这是我第一次使用 JQuery,如果我问的问题很明显,很抱歉。

我刚开始一份新工作,我的老板让我对内部 web 应用程序进行一些更改,我想为其中一个表添加排序功能。我发现了tablesorter并遵循了入门。

它现在不工作,我不知道为什么。检查 chromium javascript 控制台会出现以下消息:Uncaught TypeError: Object #<HTMLDocument> has no method 'ready'

我搜索过类似的问题,通常是错误的 JQuery 包含或权限。我确定这不是权限,包括我不知道的内容。

该应用程序使用 symfony 1.2,现在升级不是一个选项。

我的标题如下:

<?php use_helper('Javascript','Form') ?>
<?php use_javascript('toggleTabActive') ?>
<?php use_javascript('jquery-latest.js'); ?>
<?php use_javascript('jquery.tablesorter.min.js'); ?>
<?php use_javascript('jquery-1.3.2.min.js'); ?>
<?php echo javascript_tag("toggleTabActive(15)"); ?>
<?php use_javascript('/sfProtoculousPlugin/js/prototype.js'); ?>
<?php use_javascript('/sfProtoculousPlugin/js/effects.js'); ?>
<?php use_javascript('/sfProtoculousPlugin/js/controls.js'); ?>
<?php use_stylesheet('tablesorter/style.css') ?>

<script type="text/javascript">
$(document).ready(function(){
$(".urTable" ).tablesorter();
});
</script>

和表:

<table class="tablesorter urTable" width="100%" cellspacing="0" cellpadding="1" border="0">
        <thead>
        <tr class="collection-as-table">
          <th class="collection-as-table"></th>
          <th class="collection-as-table">Access</th>
          <th class="collection-as-table">Name</th>
          <th class="collection-as-table">Activity</th>
          <th class="collection-as-table">Machine</th>
          <th class="collection-as-table">Activation Date</th>
          <th class="collection-as-table">Mail</th>
          <th class="collection-as-table">UR</th>
        </tr>
        </thead>
        <tbody>
        [...]
        </tbody>
      </table>

任何见解,建议,教程,解释......?

感谢您的时间。

4

1 回答 1

0

看来您正在加载 Prototype 并且它会覆盖$. 尝试删除其中一个或查看 jQuery 的noconflict mode

从链接:

var $j = jQuery.noConflict();
// $j is now an alias to the jQuery function; creating the new alias is optional.

$j(document).ready(function() {
    $j(".urTable" ).tablesorter();
});
于 2013-08-27T12:27:48.070 回答