mixitup,更改过滤器后重新触发插件

时间:2018-11-14 09:44:00

标签: mixitup

我使用mixitup(带有multifilter插件)对项目进行排序/过滤,filter / sort控件是选择字段,通过更改触发插件。排序时,我将为使用的每个选择字段添加重置标记,这使用户可以重置单个过滤器(因此,无需全局重置)。

因此,当用户删除单个过滤器(徽章)时,我需要使用所选过滤器(减去我们已删除的过滤器)重新初始化插件。现在,当我单击徽章时,它将重置选择字段,但不会重新触发插件。

// 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

});

0 个答案:

没有答案