Запустить сортировку по нажатию кнопки вместо полного щелчка с помощью jQuery tablesorter?

Я использую этот jQuery tableorter: https://mottie.github.io/tablesorter/docs/index.html. Я инициализирую сортировку следующим образом:

$('.sortable').tablesorter();

Моя таблица выглядит так:

<table class="sortable" id="list-users">
    <thead>
        <tr>
            <th>
                <div class="sorter"></div>
                ID
            </th>
            <th>
                <div class="sorter"></div>
                Name
            </th>
            <th>
                <div class="sorter"></div>
                Birth date
            </th>
        </tr>
    </thead>
    <tbody>
        <tr>
...

Поведение по умолчанию следующее: когда я щелкаю тег th, таблица сортируется по столбцу. Это хорошо.

Но я хочу вызвать событие, когда вместо этого нажимаю на div.sorter. Кто-нибудь знает, как это сделать? Я попробовал это:

$('table').find('th:eq(columnNumber)').trigger('sort');

Но это, конечно, не отключает событие по умолчанию, это полезно, когда вы хотите вызвать событие из thead.

Спасибо!

1 ответ

Решение

На самом деле в этом плагине есть настраиваемый селектор, который позволяет вам определить, какой элемент запускает сортировку. Вот пример из проектной документации. Применяя его к вашей разметке, он может выглядеть так:

$(function() {
    // call the tablesorter plugin
    $(".sortable").tablesorter({
        selectorSort : 'div.sorter'
    });
});
Другие вопросы по тегам