В моей таблице определены обработчики выбора и удаления, которые отлично работают, когда пользователь щелкает пробел в строке. Однако, если пользователь нажимает на какой-либо текст (теги span, определенные в создании таблицы), событие никогда не запускается.Событие выбора не запускается при нажатии на данные строки.
Чтобы исправить это, я попытался установить обработчик события щелчка строки, который проверяет, имеет ли строка свойство CSS «выбрано» или нет, а затем вручную запускает соответствующее событие de/selection по строке. Решение работает хорошо при нажатии на текст, но, к сожалению, не при нажатии на пустое место в строке, потому что оба события запущены, а поведение не ожидается.
Любая идея для этого?
/*
*/
function createTable(){
if(table != null){//Si la tabla ya existe: eliminamos filas y la destruimos.
table.destroy();
$('#'+tableID).empty();
}
table = $('#' + tableID).DataTable({
"dom": 'Bfrtip',
"buttons": ['selectAll','selectNone'],
"columnDefs": [{
"render": function(data, type, row){
return '<span class="label bg-info">' + data + '</span>';
},
"targets": 1
},
{
"render": function(data, type, row){
return '<span class="column1">' + data + '</span>';
},
"targets": 0
}],
"select": {style: 'multi'},
"data": rows,
"columns": columns,
"destroy": true
});
table.off('select').on('select', handlerRowsSelection);
table.off('deselect').on('deselect', handlerRowsDeselection);
//table.off('click').on('click', 'tr', handlerRowClickEvent);
}
/*
*/
function handlerRowClickEvent(){
if ($(this).hasClass('selected')) {
table.row(this).deselect();
}
else {
table.row(this).select();
}
}
/*
*/
function handlerRowsSelection(e, dt, type, indexes){
if(type=="row"){
//DOING SOMETHING
}
}
/*
*/
function handlerRowsDeselection(e, dt, type, indexes){
if(type=="row"){
//DOING SOMETHING
}
}
Пожалуйста, покажите нам код. – markpsmith
Я добавил код на вопрос. Извините за задержку в отправке кода. – nespapu
Отлично, вы обновили вопрос, но у меня все еще есть трудности с воспроизведением, вы можете работать над этой скрипкой -> http://jsfiddle.net/0f9Ljfjr/687/ – davidkonrad