Плагин jquery для сортировки таблиц завершается с ошибкой в FF 3.6.12 с сообщением «table.config.parsers[c] не определен»

#jquery #macos #firefox #tablesorter

#jquery #macos #firefox #tablesorter

Вопрос:

С последней версией плагина от 04.05.2011 на OSX 10.6.7 с версией FF 3.6.12 Chrome, Safari и IE все работают отлично. Я также пробовал это с отключенным FireBug, но безрезультатно.

Вот HTML, с которым я тестирую:

         <!DOCTYPE html>
        <html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
          <head>
          <script src="/javascripts/jquery/jquery-1.4.4.min.js?1301000558" type="text/javascript"></script>
          <script src="/javascripts/jquery.tablesorter.js?1304537000" type="text/javascript"></script>
          <script>
        $(document).ready(function () {
            $("#testtable").tablesorter( {debug:true} );
        });
          </script>
          </head>

          <body>
                <table id='testtable'>
                <thead>
                <th>Col1</th>
                <th>Col2</th>

                <th>Col3</th>
                </thead>

                <tbody>
                <tr>
                <td>val1</td>
                <td>val2</td>
                <td>val3</td>

                </tr>
                <tr>

                <td>val2</td>
                <td>val1</td>
                <td>val3</td>
                </tr>
                <tr>

                <td>val3</td>

                <td>val1</td>
                <td>val2</td>
                </tr>
                </tbody>
                </table>
          </body>

        </html>
  

При включенном firebug вот сообщения, которые появляются перед попыткой щелкнуть по заголовку столбца:

 Built headers:,0ms
[th.header, th.header, th.header]
Checking if value was empty on row:0
Checking if value was empty on row:0
Checking if value was empty on row:0
column:0 parser:text column:1 parser:text column:2 parser:text
Building cache for 3 rows:,0ms
  

Вот ошибки после нажатия:

     table.config.parsers[c] is undefined
  

которое находится в функции setTimeout около строки 600 в не уменьшенном исходном коде.

Комментарии:

1. ЭТО НЕ проблема. Мне НЕ ХВАТАЛО ТЕГА TR ВОКРУГ ТЕГОВ TH.

Ответ №1:

У меня также была такая же проблема, проблема заключалась в том, что я использовал empty, <TR> который имел COLSPAN во всех пустых строках.
Когда я удалил <td colspan="3"> и сделал три пустыми <TD> , проблема исчезла.

Комментарии:

1. Спасибо @dBlaze, ваш ответ решает проблему, с которой я столкнулся с tablesorter, высоко ценится.

Ответ №2:

Я знаю, что это устарело, но я столкнулся с той же проблемой при вставке динамических данных в строки с использованием PHP. Проблема возникла только в IE. Все, что мне нужно было сделать, это отключить отладку, вот так:

  $("#testtable").tablesorter( {debug:false} );
  

JS запускается до того, как PHP-код успел заполнить поля данными, поэтому была отображена ошибка. Легко исправить.

Ответ №3:

Я исправил эту проблему, загрузив версию 2.15.5 отсюда.