我有一个网格设置,显示了很多列表。在这些列表中有溢价'类别。 I.e - 食品清单1,住宿清单1,食品清单2,优质食品清单。
基本上,它们按照HTML中设置的顺序加载。但我想列出“溢价”和#39;首先列出"所有"选择,然后首先当类别"食物"被选中。
有人可以帮帮我吗?在这里小提琴 - https://jsfiddle.net/r1yd01fq/2/
$('#Container').mixItUp();
答案 0 :(得分:0)
这应该为" All"选项
$(document).on("click", ".filter", function() {
var choice = $(this).data("filter");
switch (choice) {
case "all":
$("#Container div").attr("data-sort", 0);
$("#Container div.premium").attr("data-sort", 1);
break;
}
var d = $("#Container div");
d.sort(function(a, b){
return $(b).data("sort")-$(a).data("sort")
});
$("#Container").html(d);
});
答案 1 :(得分:0)
找到一种相对简单的方法。使用.insertA结尾位于容器顶部的优质div支架。然后我使用了一个shuffle插件随机化了高级列表,所以首先加载的那些不会一直显示。
https://jsfiddle.net/r1yd01fq/4/
$.fn.shuffle = function() {
var allElems = this.get(),
getRandom = function(max) {
return Math.floor(Math.random() * max);
},
shuffled = $.map(allElems, function(){
var random = getRandom(allElems.length),
randEl = $(allElems[random]).clone(true)[0];
allElems.splice(random, 1);
return randEl;
});
this.each(function(i){
$(this).replaceWith($(shuffled[i]));
});
return $(shuffled);
};
// Insert all premium listings first
$(".premium").insertAfter(".prem");
// Shuffle premium listing so they appear randomly
$('.premium').shuffle();
// Instantiate MixItUp:
$('#Container').mixItUp({});