Удалить по умолчанию Jquery Datatable событие поиска и добавить обычное событие - PullRequest
0 голосов
/ 05 апреля 2020

Я использую Jquery Таблица данных, и в моей таблице есть процесс на стороне сервера, поэтому я готов отключить действие поиска по умолчанию (которое отправляет запрос на ключ) и использовать свое собственное действие.
Я пробовал эти вещи, но ничего не работает:

table.search( '' );
table.one( 'search.dt', function (event) { //my action here})
table.off('search.dt')
table.off('search')
$('my_table_selector').removeEventListener('search')
$('my_table_selector').removeEventListener('search.dt')
$('my_table_selector').unbind('search')
$('my_table_selector').unbind('search')
table.on( 'search.dt', function (event) {
  event.preventDefault();
  event.stopPropagation();
  event.stopImmediatePropagation();
})

Я понимаю, что js не переписывает слушателей.
Может пожалуйста, помогите мне переписать действие поиска в таблице данных своим собственным действием?
Заранее спасибо.

1 Ответ

1 голос
/ 05 апреля 2020

Если идентификатор вашей таблицы данных - «пример», то присвойте его переменной при инициализации:

var table = $('#example').DataTable({
  // usual config in here
});

Затем используйте что-то вроде этого, чтобы переопределить соответствующее событие окна поиска:

$('#example_filter input').off().blur(function () {
  // your logic in here, for example:
  //table.search(this.value).draw();
});

В моем примере я использовал blur (который срабатывает, когда окно поиска теряет фокус), но вы можете заменить его на все, что вам нужно.

Обратите внимание, что мой селектор '#example_filter input' основан на стандартные значения, предоставленные DataTables, вместе с идентификатором таблицы. Если вы не настроили классы DataTable по умолчанию, этот подход должен работать.

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