0

这是一个简单的 jQuery 过滤器。我试图允许选择多个选项,并全部过滤。相反,它通过“或”进行过滤,或者只是选择最近选择的选项。

无论哪种方式,它都不允许多选。

我错过了什么?

$(function() {
  var $filterSelect = $("#FilterSelect"),
    $sessionSelect = $("#SessionSelect"),
    $trackSelect = $("#TrackSelect"),
    $sortSelect = $("#SortSelect"),
    $container = $("#Container");

  $container.mixItUp();

  $filterSelect.on("change", function() {
    $container.mixItUp("filter", this.value);
  });

  $sessionSelect.on("change", function() {
    $container.mixItUp("filter", this.value);
  });

  $trackSelect.on("change", function() {
    $container.mixItUp("filter", this.value);
  });

  $sortSelect.on("change", function() {
    $container.mixItUp("sort", this.value);
  });
});
*{
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

body, button{
  font-family: 'Helvetica Neue', arial, sans-serif;
}

.controls{
  padding: 2%;
  background: #333;
  color: #eee;
}

label{
  font-weight: 300;
  margin: 0 .4em 0 1em;
}

label:first-child{
  margin-left: 0; 
}

button{
  display: inline-block;
  padding: .4em .8em;
  background: #666;
  border: 0;
  color: #ddd;
  font-size: 16px;
  font-weight: 300;
  border-radius: 4px;
  cursor: pointer;
}

button.active{
  background: #68b8c4;
}

button:focus{
  outline: 0 none;
}

button + label{
  margin-left: 1em;
}

.container{
  padding: 2% 2% 0;
  text-align: justify;
  font-size: 0.1px;
  background: #68b8c4;
  
  -webkit-backface-visibility: hidden;
}

.container:after{
  content: '';
  display: inline-block;
  width: 100%;
}

.container .mix,
.container .gap{
  display: inline-block;
  width: 49%;
}

.container .mix{
  text-align: left;
  background: #03899c;
  margin-bottom: 2%;
  display: none;
}

.container .mix.category-1{
  border-top: 2px solid limegreen;
}

.container .mix.category-2{
  border-top: 2px solid yellow;
}

.container .mix:after{
  content: attr(data-myorder);
  color: white;
  font-size: 16px;
  display: inline-block;
  vertical-align: top;
  padding: 4% 6%;
  font-weight: 700;
}

.container .mix:before{
  content: '';
  display: inline-block;
  padding-top: 60%;
}

@media all and (min-width: 420px){
  .container .mix,
  .container .gap{
    width: 32%;
  }
}

@media all and (min-width: 640px){
  .container .mix,
  .container .gap{
    width: 23.5%;
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mixitup/2.1.11/jquery.mixitup.js"></script>
<div class="controls">
  <label>By Date</label>
  
  <select id="FilterSelect">
    <option value="all">All</option>
    <option value=".date-1">April 26</option>
    <option value=".date-2">April 27</option>
    <option value=".date-3">April 28</option>
    <option value=".date-4">April 29</option>
  </select>
  
  <label>By Session Type</label>
  
  <select id="SessionSelect">
    <option value="all">All</option>
    <option value=".signature">Signature</option>
    <option value=".breakout">Breakout</option>
    <option value=".workshop">Workshop</option>
  </select>
  
  <label>By Education Track</label>
  
  <select id="TrackSelect">
    <option value="all">All</option>
    <option value=".howto">How-To</option>
    <option value=".people">People</option>
    <option value=".sourcing">Sourcing for Value</option>
    <option value=".csr">Corporate Social Responsibility</option>
    <option value=".digital">Digital Transformation</option>
    <option value=".challenges">Challenges</option>
    <option value=".strategic">Strategic to Practical Sessions</option>
  </select>  
  
  
  <label>Sort:</label>
  
  <select id="SortSelect">
    <option value="myorder:asc">Asc</option>
    <option value="myorder:desc">Desc</option>
  </select>
</div>
<div id="Container" class="container">
  <div class="mix date-1 signature howto" data-myorder="1"></div>
  <div class="mix date-3 breakout people" data-myorder="2"></div>
  <div class="mix date-1 workshop sourcing" data-myorder="3"></div>
  <div class="mix date-2 signature csr" data-myorder="4"></div>
  <div class="mix date-3 breakout digital" data-myorder="5"></div>
  <div class="mix date-4 workshop challenges" data-myorder="6"></div>
  <div class="mix date-2 signature strategic" data-myorder="7"></div>
  <div class="mix date-4 breakout howto" data-myorder="8"></div>
  
  <div class="gap"></div>
  <div class="gap"></div>
</div>

4

0 回答 0