簡體   English   中英

同位素JS多個復選框過濾器

[英]Isotope JS Multiple Checkbox FIlters

我在兩個不同的部分中有這些復選框:

 <div class="col-sm-3 choose_lifestyle">

    <input type="checkbox" id="fiftyfiveplus" name="fiftyfiveplus" value=".fiftyfiveplus">
    <label for="fiftyfiveplus">55+ Exclusive</label>

    <input type="checkbox" id="allages" name="allages" value=".allages">
    <label for="allages">All-Ages</label> 

</div>
<div class="col-sm-3 builder-pick">  
    <input id="cbx_classic" type="checkbox" name="cbx_classic" value=".classic-group" />
    <label for="cbx_classic">Classic Homes</label>

    <input id="cbx_nvhomes" type="checkbox" name="cbx_nvhomes" value=".nvhomes" />
    <label for="cbx_nvhomes">NVHomes</label>

    <input id="cbx_ryan" type="checkbox" name="cbx_ryan" value=".ryan-homes" />
    <label for="cbx_ryan">Ryan Homes</label>

    <input id="cbx_winchester" type="checkbox" name="cbx_winchester" value=".winchester-homes" />
    <label for="cbx_winchester">Winchester Homes</label>
</div>

<!-- Some example results -->
<div id="wpv-view-layout-99-TCPID101">
  <div class="home_wrapper allages classic-group">

  </div>
  <div class="home_wrapper fiftyfiveplus classic-group">

  </div>
  <div class="home_wrapper fiftyfiveplus nvhomes">

  </div>
</div>

這是同位素的代碼:

var container = jQuery('#wpv-view-layout-99-TCPID101 > .row');
     var checkboxes = jQuery("input[type='checkbox']");

     container.isotope({
          itemSelector: '.home_wrapper'
     });

     var isotope = container.data('isotope');


     checkboxes.change(function() {
          var filters = [];
          // get checked checkboxes values
          checkboxes.filter(':checked').each(function() {
               filters.push(this.value);
          });

          console.log(filters);
          filters = filters.join(', ');
          container.isotope({
               filter: filters
          });

     });

如何合並過濾器?

例如,如果我選擇五十,然后從生成器選擇框選擇經典組,那么我應該只看到包含“ fiftyfiveplus經典組”的div。 目前,它顯示了所有的消息和五十五個條目。

我在這里找到了一個很好的如何結合的例子:

https://codepen.io/desandro/pen/JEojz

但是無法弄清楚如何在我的版本中實現它。

一些相關的CSS將有助於應用完整的片段演示,但是,您可以嘗試Natu建議的SO回答方法:

  • 替換filters = filters.join(', '); 對於filters = filters.join('');

這應該添加並組合所選的選項,而不是如逗號所示過濾一個或另一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM