Я использую mixitup (с плагином multifilter) для сортировки / фильтрации элементов, а filter / sort control - это поля выбора, которые запускают плагин при изменении.Когда происходит сортировка, я добавляю значки сброса для каждого используемого поля выбора, это позволяет пользователям сбрасывать один фильтр (поэтому нет глобального сброса).
Поэтому, когда пользователь удаляет один фильтр (значок), мне нужно повторно запустить плагин с выбранными фильтрами (за исключением того, который мы удалили).Теперь, когда я нажимаю на значок, он сбрасывает поле выбора, но не запускает плагин.
// markup //
// placeholder badges(auto generated)
<div class="badges-container">
// resets the main filter
<div class="badge" data-target="filter-main">remove main filter (x)</div>
// resets the sub filter
<div class="badge" data-target="filter-sub">remove sub filter (x)</div>
[...]
</div>
// filters
<div class="filters-container">
<select class="filter-main">
<option>filter 1</option>
<option>filter 2</option>
<option>filter 3</option>
</select>
<select class="filter-sub">
<option>filter 4</option>
<option>filter 5</option>
<option>filter 6</option>
</select>
[...]
</div>
// items container
<div class="items-container">
// items
</div>
// javascript logic //
//init plugin
var mixer = mixitup($('.container'), {
selectors: {
target : '.sort'
},
multifilter: {
enable : true,
parseOn : 'change'
}
});
// reset filters with click on badge
$('body').on('click', '.badge', function(e) {
e.preventDefault();
var tar = $(this).attr('data-target');
// reset the select field
$('.'+target).val("").change();
$(this).remove();
mixer.init()// the idea
});