次の jquery/checkbox の動作の理由を見つけるのに問題があります。
$( this.obj + ' table.sgrid-content > thead > tr > th > input.select_all' ).on( 'click' , {grid:this} , function(event){
var grid = event.data.grid;
if( $(this).is(':checked') ){
$( grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ' ).attr('checked','checked');
$( grid.obj + ' .sgrid-content > tbody > tr > td > input.select ' ).parents('tr').addClass('ui-state-highlight');
} else {
$( grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ' ).removeAttr('checked');
$( grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ' ).parents('tr').removeClass('ui-state-highlight');
}
});
コードは次のように動作することを意図しています: - input.select_all をクリックするとイベントがトリガーされます - input.select_all がチェックされている場合: table.sgrid-content 内の .select としてマークされたすべてのチェックボックスにチェックされた属性を追加します - そうでない場合: 'checked を削除します' すべての input.select アイテムの属性。
さらに別の単純なグリッド関数。そして、それは機能します。奇妙な部分は、一度しか機能しないことです。つまり、すべてのチェックボックスを選択および選択解除できます。その後、「全選択」機能が動作しなくなります。
もう1つの奇妙なことは、dom要素をfirebugでチェックすると、すべてchecked = 'checked'属性になりますが、チェックされていないので表示され、動作します。
セレクターは正常に機能します。ui-state-highlightを追加/削除するコード部分は常に機能します。
説明: grid - grid.obj を取得するために渡すオブジェクトです (基本的には特定の div の ID )。
ご意見をお聞かせください。