2012-03-16 2 views
1

Я сделал очень простой пример, и когда я использую дефис на первом <tr> <td> (первая строка, первая ячейка), tablesorter больше не работает.
Я использую jquery 1.7.1, и последняя tablesorter.min.jsJQuery tablesorter - ошибка Hyphen

Код примеров:

Работы -> Нет дефис:http://jsfiddle.net/6gjLs/4/
Работы -> дефис на втором ряду: http://jsfiddle.net/8Wet2/4/
не работает - > Дефис на первом td в первом ряду:http://jsfiddle.net/YkaCv/4/

код, как вы можете видеть, точно так же на 3 примерах, только данные таблицы изменяются.

У всех возникла такая же проблема? Любое обходное решение?

ответ

0

Эй So вот почему он не работает & решение hack-y.

Причина:

Так кодовая таблица сортировщик действительно заботиться о тире -.

https://github.com/jbritten/jquery-tablesorter-filter/commit/378b7ef36e9201df4ec6bd3fb2487e8c9ec9359f

, но я читаю плагин и должен плавник, почему это скрытых первой строка разрешает это

Возможное решение:

а) проверяет, по крайней мере один символ для начала разбора этого дефиса/тире (-) Если вы знаете какую-либо кодировку HTML, которая может подделать символ, который не появится. И Я пробовал его с подчеркиванием (_), он также работает. Я буду продолжать играть, но

б) * Если * вы можете попробовать поставить это как первый ряд, который будет удивительным - сделать пустую строку в верхней части с некоторым содержанием, а затем вторым рядом, как тир

Working CODE: (In your JSFiddle - change your TBODY to this one and this should work man. 

     <tbody> 
<tr style="display:none;"> 
        <td>foobar</td>                       
       </tr>     
       <tr> 
        <td>-</td>                       
       </tr> 
       <tr> 
        <td>B</td>            
       </tr> 
       <tr> 
        <td>C</td>            
       </tr> 
      </tbody> 

Надеюсь, это поможет.

Приветствия,

+0

Не оптимальный, но достаточно хороший, спасибо! – ipronet

+0

Пожалуйста, см. [Мой ответ] (http://stackoverflow.com/a/9787955/145346) для нехитрого метода;) – Mottie

+0

Спасибо человеку! http://jsfiddle.net/Mottie/YkaCv/21/ - но документ готов [не рекомендуется], это хорошая доля для чтения и почему они рекомендуют его; Я читаю об этом сейчас. Cheers –

0

Я не так в TableSorter Однако один простой обходной путь, который я обнаружил, что работает в вашем примере, это просто всегда вставить скрытый Т.Р., тд и поставить в А в топе:

  <tr style="display:none"> 
       <td>A</td>                       
      </tr>  
+0

предыдущий пост сказал то же самое, мне стыдно, я так и не подумал, так просто обходное решение спасибо в любом случае! – ipronet

3

На самом деле, когда TableSorter пытается определить, какой тип данных содержится в каждом столбце, он получает путать с тире ... это текст или минус? Если вы запустите плагин с debug, установленным на true, вы увидите, что он устанавливает парсер digit. Вот updated demo.

Так что лучше не-Hacky решение было бы установить анализатор заголовка к тексту:

$(".tableresult").tablesorter({ 
    headers: { 
     0: { sorter:'text' } 
    } 
}); 

И, наконец, пожалуйста, не используйте $().ready(function(){}); в качестве готовой функции документа. В последних версиях jQuery он по-прежнему поддерживается, но для использования и поддержки, скорее всего, будет удалено в будущем not recommended. Вместо этого используйте $(function(){}).

+0

Спасибо, человек! +1 брув; да; прочитайте о вариантах заголовка после ответа на это исправление :) Кстати, легендарная доля здесь :)) ==> [QUOTE] И, наконец, пожалуйста, не используйте $(). ready (function() {}); как функция готовности документа. В последних версиях jQuery он по-прежнему поддерживается, но не рекомендуется использовать и поддерживать, скорее всего, будет удален в будущем. Вместо этого используйте $ (function() {}). [UNQUOTE] CHeers, –