jQuery 全選與選取/取消
製作網站會遇到類似gmail那樣的,有checkbox的選單,當資料筆數一多,會希望有一個可以全選/取消全選的checkbox。如果要實現點了全選可以把所有東西都選起來很單純,但如果其中一個取消選取,或全部都選取了需要讓全選的checkbox也被選取。
這時候加一個變數,當選取的數目改變了,就會變化。
- $count=num_of_datas;
先寫全選/全部取消的,只要選取了,就把選取的數值設為資料筆數,取消了,就設為0。
- $all=$("#all");
- $all.click(function(){
- if($(this).hasClass("selected")){
- $count=0;
- $(this).removeClass("selected");
- $(".level_one").removeClass("selected");
- }else{
- $count=num_of_datas;
- $(this).addClass("selected");
- $(".one").addClass("selected");
- }
- });
最後寫單選的js,只要選了,就+1,取消了,就-1,如果操作後是0或資料筆數,就改變全選按鈕狀態。
- $(".one").click(function(){
- if($(this).hasClass("selected")){
- $(this).removeClass("selected");
- $count--;
- $all.removeClass("selected");
- }else{
- $(this).addClass("selected");
- $count++;
- if($count==num_of_datas){
- $all.addClass("selected");
- }
- }
- });
稍微用一點邏輯就可以做出來了。
留言