РЕДАКТИРОВАТЬ: ЛУЧШЕЕ РЕШЕНИЕ ВНИЗ
Предполагая, что есть только один флажок, я бы прикрепил событие к td
вместо tr
:
$('#my_table td').click(function(e){
$(this).parent().find('input:checkbox:first').attr('checked', 'checked');
});
Пример
Если вы также хотите снять флажок ...
$('#my_table td').click(function(e) {
var $tc = $(this).parent().find('input:checkbox:first'),
tv = $tc.attr('checked');
$tc.attr('checked', !tv);
});
Эту функцию необходимо также применить к флажку, чтобы отменить поведение по умолчанию.
Пример 2
РЕДАКТИРОВАТЬ: Наиболее разумным решением является отмена функциональности, если целью является ввод: http://jsfiddle.net/EXVYU/5/
var cbcfn = function(e) {
if (e.target.tagName.toUpperCase() != "INPUT") {
var $tc = $(this).parent().find('input:checkbox:first'),
tv = $tc.attr('checked');
$tc.attr('checked', !tv);
}
};
$('#my_table td').live('click', cbcfn);