2014-10-19 35 views
-1

在我的下拉菜单中如果我选择时间戳,它应该按照升序/降序对TimeStamp进行排序,或者如果我选择主机它应该按升序/降序对Host进行排序。如何在客户端的下拉菜单触发时对特定列进行排序?

目前我正在使用Tablesorter插件,它似乎不工作。

var value = $('#sourceDropdown :selected').text(); 
if(value == "TimeStamp"){ 
    $("#myTable").tablesorter({     
     headers: {      
      0: {     
       sorter: true         
      } 
     }   
    }); 
    console.log("sorted"+ value); 
} 
else if(value=="Host") { 
    $("#myTable").tablesorter({   
     headers: {      
      1: {     
       sorter: true         
      } 
     }   
    }); 
    console.log("sorted" +value); 
} 
else{ 
    console.log(value+" is not a valid option"); 
} 
+0

你可以发表你的HTML以及 – Brian 2014-10-19 06:37:57

回答

1

看起来不是告诉它排序,而是指定允许排序的列。为了将列进行排序,你会使用:

var sorting = [[0,0]]; 
// sort on the first column 
$("table").trigger("sorton",[sorting]); 

所以你的情况这应该工作:

var value = $('#sourceDropdown :selected').text(); 
     if(value == "TimeStamp"){ 
      var sorting = [[0,0]]; 
      $("table").trigger("sorton",[sorting]); 
      console.log("sorted"+ value); 
     } 
     else if(value=="Host") { 
      var sorting = [[1,0]]; 
      $("table").trigger("sorton",[sorting]); 
      console.log("sorted" +value); 
     } 
     else 
     { 
      console.log(value+" is not a valid option"); 
     } 
+0

谢谢!这种代码可以在JSFiddle上运行,但是当我在TextEditor上执行代码时,在控制台上出现错误:Uncaught TypeError:无法读取undefined **的属性'addClass',Web浏览器指向Jquery.tablesorter .min.js文件。 – BimalGrewal 2014-10-20 02:17:29

+0

这意味着你正试图在你认为是一个元素但实际上没有定义的变量上使用jquery函数addClass。将不得不看到那部分代码来帮助你。 – Brian 2014-10-20 12:17:14

+0

好的谢谢!它现在有效。 – BimalGrewal 2014-10-20 18:59:06

相关问题