После долгих поворотов я нашел решение.Следующее работает, если у вас есть:
a) флажок для выбора всех строк таблицы , называемый $ ('# selectAll')
b) флажками в каждой строке для выбора одиночная строка , называемая $ ('. Selector') = они находятся в ячейках TH, тогда как все остальные ячейки - TD
c) щелкаемые строки , которые также должны выбирать строку
Поэтому записи могут быть выбраны с помощью трех «событий»
a) выбора всех записей
b) выбора одной записи
c) щелчка строки для выбора отдельной записи
Вам нужно установить три привязки событий, все из которых запускают функцию выбора и выделения.Это код:
// all rows
$('#selectAll').live( "change", function( event ) {
rowHighlight(event, "all");
});
// single row
$('.your_table tbody tr').bind('click', function( event ) {
if ( $( event.target ).is('td') ) {
rowHighlight(event, "row");
}
});
// click row checkbox - careful not to fire #selectAll a 2nd time
$('input.selector:not(#selectAll)').live( "change", function( event ){
rowHighlight(event, "checkbox");
});
// global handler
function rowHighlight(event, origin) {
var selectTheme = your-JQM-select-theme,
// this determines which inputs to check and which rows to highlight
checkWhat = origin == "all" ? $("tbody th input.selector" ) : origin == "row" ? $( event.target ).closest('tr').find('th input[type="checkbox"].selector') : $( event.target ),
// this determines whether to clear/clean or check/highlight
action = origin == "all" ? ( $('#selectAll').attr('checked') == "checked" ? "check" : "clear" ) : origin == "row" ? ( checkWhat.attr('checked') == "checked" ? "clear" : "check" ) : ( checkWhat.attr('checked') == "checked" ? "check" : "clear" ),
parentTheme = checkWhat.closest('tr').hasClass('odd') ? your_odd_JQM-theme : your_event_JQM_theme;
// let's go
if (action == "check") {
// select/highlight
checkWhat.attr('checked','checked')
.closest('th').find("label").addClass("ui-checkbox-on").removeClass("ui-checkbox-off").end()
.closest('th').find(".ui-icon").addClass('ui-icon-checkbox-on').removeClass('ui-icon-checkbox-off').end()
.closest('tr').addClass('row_selected ui-btn-hover-'+selectTheme).removeClass("ui-btn-up-"+parentTheme);
//no need .checkboxradio("refresh")
} else {
// clear/clean
checkWhat.removeAttr('checked')
.closest('th').find("label").addClass("ui-checkbox-off").removeClass("ui-checkbox-on").end()
.closest('th').find(".ui-icon").addClass('ui-icon-checkbox-off').removeClass('ui-icon-checkbox-on').end()
.closest('tr').addClass('ui-btn-up-'+parentTheme).removeClass("row_selected ui-btn-hover-"+selectTheme);
// no need .checkboxradio("refresh")
}
}
}
Работает как шарм.Может быть, кто-то может использовать это тоже.Рано или поздно должны быть JQM-таблицы.