насколько я понимаю, существует только обратный вызов dataFiltered, который используется для всей таблицы. Он запускается всеми фильтрами безразлично.

Можно ли получить обратный вызов для определенного фильтра одного заголовка? Так что я могу вызвать функцию, как только определенный фильтр заголовка становится активным? Я представляю, что это что-то вроде этого:

{title:"Name", field:"name", headerFilter:true, headerdataFiltered:function()}

Есть ли обходной путь? Большое спасибо! (Я был бы особенно благодарен за не-jquery решения)

Спасибо также за этот действительно замечательный инструмент Tabulator.

Спасибо за ваши добрые слова, всегда приятно слышать, что Табулятор ценится.

Причина, по которой он вызывается при применении любого фильтра, заключается в том, что одновременно можно применять несколько фильтров, а при комплексной фильтрации можно применять сложный и / или набор фильтров, поэтому во всех случаях будет сложно выделить отдельные столбцы.

Обратному вызову dataFiltered передается список всех активных на данный момент фильтров, поэтому вы можете увидеть, находится ли ваш уязвимый столбец в этом:

 var table = new Tabulator("#example-table", { dataFiltering:function(filters){ //filters - array of filters currently applied }, }); 

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

Другой вариант — использовать пользовательский редактор в фильтре заголовка, тогда вы можете вручную решить, когда вызывается функция успеха, которая запускает фильтр, а затем ссылаться на внешнюю функцию оттуда.