Прежде всего, я полагаю, вы неверно истолковали значение с помощью onSearchEmpty
.Предполагается, что он запускается, когда поисковый термин пуст.На самом деле нет никаких обратных вызовов для поиска «результатов».
Во-вторых, вы можете пропустить все $( '#searchable-container' ).searchable({ })
и работать только на $( '#table' ).searchable({ })
.Я предполагаю, что это был какой-то тест?
В-третьих, когда нет обратных вызовов для поиска, вы должны создать его самостоятельно.Этот поисковый плагин не выполняет ничего, кроме обновления строк display
, то же самое будет делать ваш слайд / вниз.Вы можете создать универсальный обработчик, например, такой:
var emptySearch = function(element, term) {
var total = element.find('tbody tr').length;
var hidden = element.find('tbody tr:hidden').length;
if (total == hidden) {
$('#shBtnAddNewProd').show()
} else {
$('#shBtnAddNewProd').hide()
}
}
И использовать его как обратный вызов
$( '#table' ).searchable({
striped: true,
oddRow: { 'background-color': '#f5f5f5' },
evenRow: { 'background-color': '#fff' },
searchType: 'fuzzy',
onSearchActive: emptySearch, // <---here
onSearchEmpty: emptySearch, // and here
show: function( elem ) {
elem.slideDown(100);
},
hide: function( elem ) {
elem.slideUp( 100 );
},
});
Теперь он работает, более или менее -> http://jsfiddle.net/o9tj0g31/Меньше, потому что плагин плохо справляется с вызовом обратных вызовов.Иногда требуется дополнительная keyup
.Я не вижу причин для оптимизации 5-летнего плагина jQuery, который больше не поддерживается.
Возможно, вы могли бы изменить emptySearch
так, чтобы он работал непосредственно с таблицей, а не с пропущенным элементом, и тем самым включал бы скрытие / отображение также для размытия и фокусировки.