我有一个项目列表,我只需要返回价格介于“最小”和“最大”价格范围之间的项目。
以下是完整的工作示例,按类对项目进行排序,但正如您所看到的滑块不会影响价格范围,以下是完整代码:
所以,正如您所看到的,这是.find和.filter代码:
var price = data.find('li').filter(function() {
var price = parseFloat($(this).data('price'));
return price >= minPrice && price <= maxPrice;
});
你能告诉我我做错了吗?
答案 0 :(得分:0)
您可能需要
var price = data.find('li').filter(function() {
var price = parseFloat($(this).data('price'));
return price >= minPrice && price <= maxPrice;
});
filter()函数应该返回一个布尔值,指示当前计算的元素是否应该包含在返回的集合中。如果你返回价格,那么每个没有价格=== 0的元素都将被返回,因为正整数是“真实的”,即当被认为是布尔值时评估为真。
你也有类似的东西
$(document).ready(function(){
...
$(function(){
...
});
});
即。包装了两个document.ready函数绑定。我想你可以简单地删除内部的那个。你的滑块似乎仍然以某种方式初始化,但也许这可能会导致一些故障。
你的小提琴中也发生了一个错误:
TypeError:sel.getElement(...)为null
答案 1 :(得分:0)
最后!我找到了解决方案,你只需要调用所有变量的函数
function showProducts($holder, data, minPrice, maxPrice) {
var $price = data.find('li').filter(function() {
var $price = parseInt($(this).data("price"), 10);
return $price >= minPrice && $price <= maxPrice;
});
// call quicksand and assign transition parameters
$holder.quicksand($price, {
duration: 800,
easing: 'easeInOutQuad'
});
return false;
}
希望有所帮助!