我在 JS 方面不够先进,无法充分发挥作用。
我有两个带有选项的选择字段:
<select name="" id="filter-position">
<option value="all">Filter by position</option>
<option value=".instructor">Instructor</option>
<option value=".leader">Leader</option>
<option value=".blah">Blah</option>
<option value=".whatever">Whatever</option>
</select>
<select name="" id="filter-location">
<option value="all">Filter by position</option>
<option value=".portland">Portland</option>
<option value=".missoula">Missoula</option>
<option value=".chicago">Chicago</option>
<option value=".newyork">New York</option>
</select>
过滤项目所在的容器看起来有点像这样:
<ul id="filter-container">
<li class="mix">...</li>
<li class="mix">...</li>
<li class="mix">...</li>
<li class="mix">...</li>
<li class="mix">...</li>
<li class="mix">...</li>
</ul>
我可以让每一个都正确过滤但不能一起过滤(即AND)。我使用的 JS 代码是这样的:
$(function(){
var $positionSelect = $('#filter-position'),
$locationSelect = $('#filter-location'),
$container = $('#filter-container');
$container.mixItUp({});
$positionSelect.on('change', function(){
$container.mixItUp('filter', this.value);
});
$locationSelect.on('change', function(){
$container.mixItUp('filter', this.value);
});
});
如果我按一个选择进行过滤,则事情会正确过滤。如果我然后按另一个过滤,它会覆盖第一个过滤器。我想要的是让它们都被使用。
我知道有一种方法可以让它工作,但我不确定如何让连接的字符串执行“和”逻辑,如使用<select>
. 帮助?