Как я могу предотвратить упорядочивание, щелкнув имена столбцов в таблицах данных? - PullRequest
0 голосов
/ 13 июля 2020

Я хочу предотвратить изменение порядка при щелчке по названию столбца.

Я пробовал:

"ordering": false,

Это фактически исключает возможность щелчка. Но тогда порядок не меняется. работать больше. Я хочу сохранить это, только чтобы пользователь не мог нажимать на имена столбцов. Я пробовал все вроде:

$(".sorting").addClass('sorting_disabled').removeClass('sorting');

или

$(".sorting").click(function(){return false;});

или

  $( ".sorting" ).click(function( event ) {
  event.preventDefault();
});

Ничего не получилось.

1 Ответ

1 голос
/ 13 июля 2020

Вы можете использовать следующее:

$(document).ready(function() {

    var table = $('#example').DataTable( {
        "initComplete": function(settings, json) {
            $('th.sorting').off();
            $("th.sorting").css('cursor', 'default');
            $("th.sorting_asc").css('cursor', 'default');
            $("th.sorting_desc").css('cursor', 'default');
        }
    } );

    // to show sorting is still possible:
    table.order.listener( '#mysorter', 0 );

} );

Это удаляет события сортировки из заголовков столбцов таблицы (функция jQuery off()) и гарантирует, что значок мыши не изменится на руку при наведении курсора на заголовки.

Стрелки остаются на месте, поэтому вы можете видеть, какая сортировка действует.

Чтобы показать, что сортировка все еще возможна, я добавил кнопку в page:

<button id="mysorter" type="button">Click Me!</button>

table.order.listener() вызывает сортировку индекса столбца 0 asc / des c при каждом нажатии кнопки.

(Если вы также хотите избавиться от сортировки стрелки, см. здесь .)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...