gpt4 book ai didi

javascript - 使用下拉选择对 list.js 中的项目进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:07:53 27 4
gpt4 key购买 nike

我正在使用插件 list.js 对项目列表进行排序。目前该示例显示了一个用于过滤的搜索栏,我想使用下拉选择在两种 Material “玻璃”和“塑料”之间进行更精确的过滤。

这是我的 fiddle :http://jsfiddle.net/32u3t1g9/6/ (假设 list.js 不能很好地处理它。)

编辑:使用 jquery 插件更新了 fiddle

这是我的代码:

HTML

    <div id="container">
<div class="page">
<div>
<h1>piece-y search</h1>
</div>

<div id="main">


<div class="c1">
<h2>piece search</h2>
<div id="piece-search">

<ul class="sort-by">
<li>
<input class="search" placeholder="Search pieces" />
</li>
<li class="sort btn" data-sort="type">Sort by type</li>
<li class="sort btn" data-sort="thickness">Sort by thickness</li>
<li class="sort btn" data-sort="height">Sort by height</li>
<li class="sort btn" data-sort="category">Sort by style</li>
</ul>

<ul class="filter">
<li>
<select name="material" id="filter-material">
<option selected="selected" value="material">Select a Material</option>
<option value="material">Plastic</option>
<option value="material">Glass</option>
</select>
</li>
<li class="btn" id="filter-none">Show all</li>
<li class="btn" id="filter-scientific" value="category">Only show scientific glass</li>
<li class="btn" id="filter-artsy" value="category">Only show artsy glass</li>
</ul>

<ul class="list">

<li class="item">
<p class="sorting-info hide-this">
<p class="material">plastic</p>
<p class="type">pipe</p>
<p class="thickness">3mm</p>
<p class="height">15inch+</p>
<p class="category">artsy</p>
</p>
</li>

<li class="item">
<p class="sorting-info hide-this">
<p class="material">glass</p>
<p class="type">pipe</p>
<p class="thickness">5mm</p>
<p class="height">14inch-</p>
<p class="category">scientific</p>
</p>
</li>
</ul>
</div>
</div>
</div>

</div> <!-- end of #container -->

JS

var options = {
valueNames: [ 'material', 'type', 'thickness', 'height', 'category' ]
};

var featureList = new List('piece-search', options);

$('#filter-material').change(function () {
var selection = this.value;

// filter items in the list
featureList.filter(function (item) {
if (item.values().material == selection) {
return true;
} else {
return false;
}
});

});

$('#filter-scientific').click(function() {
featureList.filter(function(item) {
if (item.values().category == "scientific") {
return true;
} else {
return false;
}
});
return false;
});

$('#filter-artsy').click(function() {
featureList.filter(function(item) {
if (item.values().category == "artsy") {
return true;
} else {
return false;
}
});
return false;
});

$('#filter-none').click(function() {
featureList.filter();
return false;
});

最佳答案

您需要更改选择选项的值:

<select name="material" id="filter-material">
<option selected="selected" value="">Select a Material</option>
<option value="plastic">Plastic</option>
<option value="glass">Glass</option>
</select>

然后更改事件处理程序可以如下所示:

$('#filter-material').change(function () {
var selection = this.value;
if (selection) {
featureList.filter(function(item) {
return (item.values().material == selection);
});
} else {
featureList.filter();
}
});

关于javascript - 使用下拉选择对 list.js 中的项目进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26918164/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com