2016-08-01 65 views
0

我使用charlietfl的問題在StackOverflow中對this問題進行排序,以對從1月到12月的HTML表格中的月份列進行排序。我只是修改了一些東西,所以我可以在我的網站上使用它。我也使用tablesorter,所以我可以按字母順序排列其他表列。問題是它只適用於Mozilla Firefox。其他瀏覽器不會對月份列進行排序。有時 包裝表頭的tr跳出了標籤並進入tbody標籤。這裏是我的表格:http://makzel.com/problems/只在Mozilla Firefox中工作的jQuery表格排序代碼

這可能是什麼原因造成的?

這裏是我的全部jQuery代碼:

(function($) { 

    'use strict'; 

    var $window = $(window); 

    $window.ready(function(){ 

     // Enable sorting for tables 
     $(".tablesort").tablesorter({ 
      headers: { 
       0: { 
        sorter: false 
       } 
      } 
     }); 

     // Sort by month 
     $('.tablesort th').click(function(){ 
      var sorters =['January','February','March','April','May','June','July','August','September','October','November','December'] 

        var $rows = $('tr:gt(0)').sort(function(a, b){ 
         var aSrcIdx =sorters.indexOf($(a).find('td:first').text()); 
         var bSrcIdx = sorters.indexOf($(b).find('td:first').text()); 

         return aSrcIdx > bSrcIdx;  
        }); 

      $(this).closest('.tablesort').append($rows); 
     }); 

     // Tablesort header background change on click 
     $(".tablesort th").click(function(){ 
      $('.tablesort th').not(this).removeClass('sorted'); 
      $(this).toggleClass('sorted'); 
     }); 

     function postOverflow() { 
      if ($window.width() < 768) { 
       $('.tablesort').closest('.post').css("overflow","scroll"); 

      } else{ 
       $('.tablesort').closest('.post').css("overflow","none"); 
      } 
     } 
     postOverflow(); 
     $window.resize(postOverflow); 

    }); // Ready 

})(jQuery); 

下面是它顯示tr標籤跳出THEAD標籤的鏈接:http://cms5.revize.com/revize/haddonfield/departments/table_sort_test/index.php

回答

1

按照documentation of array.sort,試圖返回-1把a低於b,0使其保持不變,或1將b置於a以下。 嘗試更換:

return aSrcIdx > bSrcIdx;  

return aSrcIdx < bSrcIdx ? -1 : bSrcIdx < aSrcIdx ? 1 : 0;  
+0

你指的是0 TR內:GT(0)代碼?我真的不是很流利的Javascript,所以我不知道它是什麼。我會嘗試將其更改爲-1 – Chad

+0

是的,'return aSrcIdx> bSrcIdx;'應該改變。 – Zenny

+0

好的。我應該用什麼替換它? – Chad

相關問題