2017-08-11 132 views
1

我根据数据属性值缩短了div。我现有的代码在Firefox上运行良好,但它不适用于Chrome浏览器。Jquery排序功能在Chrome浏览器上不起作用

这里是我的代码:

$('select#shorting-job').change(function(e) { 
      var $list = $('.adsence-right'); 
      var $productList = $('div.show-jobs-in-right',$list); 
      $productList.sort(function(a, b){ 
       var keyA = $(a).attr("data-salary"); 
       var keyB = $(b).attr("data-salary"); 
       if($('#shorting-job').val()=='Salary'){ 
        return false; 
       }else if($('#shorting-job').val()=='asc'){ 
        return (parseInt(keyA) > parseInt(keyB)) ? 1 : 0; 
       } else { 
        return (parseInt(keyA) < parseInt(keyB)) ? 1 : 0; 
       } 
      }); 
      $.each($productList, function(index, row){ 
       $list.append(row); 
      }); 
      e.preventDefault(); 
    }); 

回答

1

您需要返回对称的结果为上升及使用该负值以及降序排序。

您可以使用您拥有的值并返回它的增量。

return keyA - keyB; 

降序排序,你可能会反向减法

return keyB - keyA; 

的顺序在两种情况下的值转换为数字,因为使用减号和implicid铸件数量。

在不同浏览器中获得不同结果的主要原因是,如果顺序并非真的不同,则可能会得到不稳定的结果,因为Array#sort不稳定。

相关问题