2012-01-16 2 views
16

Я хочу сортировать таблицу с помощью jQuery Plugin TableSorter. Поэтому я получаю эту таблицу:jQuery TableSorter Ошибка плагина при инициализации: невозможно прочитать свойство '0' undefined

<table id="stats" class="zebra-striped"> 
<thead> 
    <tr> 
    <th>Date</th> 
    <th>Annonce</th> 
    <th>Support</th> 
    <th>Nb Assoc.</th> 
    <th>Nb Transfo.</th> 
    <th>Cout</th> 
    </tr> 
</thead> 
<tbody> 
</tbody> 
</table> 

Так как вы можете видеть, что мой стол пуст, просто был заголовок. Поэтому я инициализации TableSorter с пустой ячейкой с:

$("table#stats").tablesorter({ sortList: [[0,0]]}); 

и немедленно я получаю эту ошибку:

jquery.tablesorter.min.js:4 Uncaught TypeError: Cannot read property '0' of undefined

FYI, есть мои JS загружены:

<!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if necessary --> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script> 
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>')</script> 
<script src="js/bootstrap-dropdown.js"></script> 
<script src="js/bootstrap-scrollspy.js"></script> 
<script src="js/jquery.tablesorter.min.js"></script> 

Любая идея, почему я получить это и как я могу сделать плагин работать снова?

Thx

+0

звучит так, как будто ваша функция tablesorter не загружена правильно, можете ли вы проверить файлы javascript, которые загружаются на вашу страницу? – JoJa

+0

@JoJa: Только что проверено. Кажется, все в порядке. Я редактирую сообщение, чтобы включить его;) – Clawfire

+0

, и если вы положили пустой с пустым ? – JoJa

ответ

15

Вы должны иметь данные в таблице, прежде чем вы можете вызвать метод список сортировки по нему. Это связано с тем, что вы применяете индексирование в этом методе, который не найдет никаких записей, если нет данных, и это приведет к ошибке «Невозможно прочитать свойство« 0 »неопределенной» ошибки.

2

Я заметил, что это происходит с последней версией (2.0.5b, я думаю), найденной в http://tablesorter.com/, но этого не произошло в более ранних версиях (у меня есть версия 2.0.3, и она работала в что). Тем не менее, есть разветвленная версия на https://github.com/Mottie/tablesorter, которая намного лучше поддерживается и не имеет этой ошибки.

12

Это не хорошо использовать TableSorter когда есть пустая таблица, так что вы можете использовать это условие:

if ($("table#stats tbody tr").length > 0) 
    $(this).tablesorter({ sortList: [[0,0]]}); 
7

Вы не нужно иметь данные в таблице. Просто initilize ваш стол таким образом:

$("table#stats").tablesorter(); 

Затем, после того, как вы вставили данные в таблице, вы должны сказать плагину, что таблица была обновлена ​​и сортировать его:

$("table#stats").trigger("update"); 
var sorting = [[0,0]]; 
$("table#stats").trigger("sorton",[sorting]); 
2

Я получил error "не может прочитать свойство 'format undefined'. В моем случае ошибка произошла из-за разного количества «td's in tbody», чем в «thead»

3

Я не мог заставить это работать, поэтому я установил таймаут для инициализации для tablesorter ...

setTimeout(function() {$('table').tablesorter();}, 10000); 
+1

Это единственный из десятков сообщений в stackoverflow, который сделал трюк для меня;) Спасибо! – baraka

+0

его работает, но он может работать только иногда ... – anonymous5671

 Смежные вопросы

  • Нет связанных вопросов^_^