change イベントにバインドすると、jquery でクリック イベントをトリガーできます。これにより、チェックボックスがオンになり、次に change イベントが発生します。
$(document).ready(function(){
$('#check_all').click(function(event) {
$('[name^="checkbox"]').trigger("click");
});
$('[name^="checkbox"]').change(function(event) {
console.log('a');
if ($(this).is(":checked")) {
$(this).closest('tr').addClass('selected');
}
else {
$(this).closest('tr').removeClass('selected');
}
});
});
更新されたフィドル: http://jsfiddle.net/DC3EH/19/
クリック イベントの代わりに変更イベントに切り替えた理由は、jquery がイベントのトリガーを処理する方法です。クリックをトリガーすると、チェックボックスの状態を変更する前にイベントハンドラーが呼び出されます。変更にバインドすると、状態が変更されるまでイベントが呼び出されなくなります。