2013-06-30 109 views
0

我有一個複選框字段對應於我使用tablesorter插件輸出的表中的每一行。通過此字段檢查,用戶可以發佈/刪除.etc集羣。因此我有一個全選按鈕。問題是,在改變分頁回退和第四之間的低和高數量之後,有些事情可能保持不被檢查。所以我只是希望複選框在用戶更改分頁時重置爲默認的未檢查值。我使用下面的代碼:jquery選擇帶複選框問題的所有按鈕

$(document).ready(function() { 
    $('a.check').toggle(function() { 
     $('input:checkbox').attr('checked', 'checked'); 
     $(this).text('Uncheck all') 
    }, function() { 
     $('input:checkbox').removeAttr('checked'); 
     $(this).text('Check all'); 
    }); 
    $('.pagesize').change(function(){ 
     $('input:checkbox').removeAttr('checked'); 
     $('a.check').text('Check all'); 
    }); 
}); 

<a href="#" class="check btn">Check All</a> 
    <select class="pagesize"> 
    <?php echo arrayToSelect($pageSize, '5'); ?> 
    </select> 

它的工作原理然而,每當用戶改變頁面大小,你必須點擊「查詢」按鈕兩次獲得全選功能重新工作。任何想法可能是什麼問題?

你可以通過改變頁面大小來看待這個問題,然後試圖點擊 「全選」

http://jsfiddle.net/H7SJd/

+0

您使用的是哪個版本的jquery? –

+0

我正在使用1.7.2 – Alex

回答

1

測試,與其:

DEMO

$(function() { 
    $("table") 
     .tablesorter({ 
     widthFixed: true, 
     widgets: ['zebra'] 
    }) 
     .tablesorterPager({ 
     container: $("#pager") 
    }); 
}); 
/* my version 
$(document).ready(function() { 
    $('a.check').toggle(function() { 
     $('input:checkbox').attr('checked', 'checked'); 
     $(this).text('Uncheck all') 
    }, function() { 
     $('input:checkbox').removeAttr('checked'); 
     $(this).text('Check all'); 
    }); 
    $('.pagesize').change(function(){ 
     $('input:checkbox').removeAttr('checked'); 
     $('a.check').text('Check all'); 
    }); 
}); 
*/ 
$(document).ready(function() { 
    $('a.check').click(function (e) { 

     var txt = $(this).text(); 
     if (txt === 'Check All') { 
      $('input:checkbox').prop('checked', true);    
      $(this).text('Uncheck All') 
     } else { $('input:checkbox').prop('checked',false); 
      $(this).text('Check All'); 
     } 
    }); 
    $('.pagesize').change(function() { 
     $('input:checkbox').prop('checked',false); 
     $('a.check').text('Check All'); 
    }); 
}); 
+0

似乎不起作用。也許我會犯錯。 http://jsfiddle.net/H7SJd/1/ – Alex

+0

由於「全部檢查」而不是「全部檢查」:http://jsfiddle.net/H7SJd/3/ –

+0

您可能想要使用e.preventDefault()避免頁面滾動到頂部點擊鏈接如果您的頁面有滾動條 –

1

檢查在這裏演示http://jsfiddle.net/yeyene/H7SJd/5/

$(function() { 
     $("table") 
      .tablesorter({widthFixed: true, widgets: ['zebra']}) 
      .tablesorterPager({container: $("#pager")}); 
    }); 
$(document).ready(function() { 
    $('a.check').click(function() {   
     $('input:checkbox').each(function(){ 
      if($(this).is(":checked")){ 
       $(this).removeAttr('checked'); 
       $('a.check').text('Check all'); 

      } 
      else{ 
       $(this).attr('checked', 'checked'); 
       $('a.check').text('Uncheck all'); 
      } 
     }); 
    }); 
    $('.pagesize').change(function(){ 
     $('input:checkbox').removeAttr('checked'); 
     $('a.check').text('Check all'); 
    }); 
});