У меня есть набор данных jquery с логикой аккордеона, чтобы показать или скрыть внутреннее содержимое. Я отключаю аккордеон и затем пытаюсь нажать на аккордеон, который не открывает ребенка (внутреннее содержимое). Но если обработчик события щелчка заменен mouseup, я могу отобразить строку child.
Ниже приведен фрагмент логики аккордеона:
$('#example tbody').on('click', 'td.details-control', function () {
var tr = $(this).closest('tr');
var row = table.row( tr );
if ( row.child.isShown() ) {
// This row is already open - close it
$('div.slider', row.child()).slideUp( function () {
row.child.hide();
tr.removeClass('shown');
} );
}
else {
// Open this row
row.child( format(row.data()), 'no-padding' ).show();
tr.addClass('shown');
$('div.slider', row.child()).slideDown();
}
} );
Я отключаю аккордеоны, используя следующий код:
$("#example td.details-control").each(function(){
$(this)[0].disabled=true;
}
);
Почему аккордеон разворачивается / разворачивается при использовании mouseup, если не происходит щелчок (что ожидается) после отключения аккордеона.
Ссылка на jsFiddle: ClickVSMouseup