mixitup, повторно запускать плагин после смены фильтров - PullRequest
0 голосов
/ 14 ноября 2018

Я использую 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

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