我遇到的问题是IE7或IE8中没有触发简单的过滤器脚本。我至少希望它能在IE8上运行。 IE7对我来说很糟糕。该网站现在是一个测试。但我似乎无法让过滤器工作。它当然适用于IE9和Chrome和Firefox,但不适用于IE8。我正在使用jQuery 1.8.1。下面是JS,这里是URL: http://carlosmosqueda.com/tastytacos/menu.html - 过滤器位于菜单项页面的顶部。任何想法都将不胜感激。
//Menu filter
$(document).ready(function() {
$('#menuFilter li').click(function(){
$(this).siblings().removeClass("activeFilter");
$(this).toggleClass("activeFilter");
filter();
});
var filter = function() {
var classes = $("#menuFilter li.activeFilter")
.map(function() {
return $(this).data("filter");
})
.toArray();
$(".item").each(function() {
var $this = $(this);
var show = classes.every(function(aClass) {
return $this.hasClass(aClass);
});
if(show) {
$this.fadeIn(200);
} else {
$this.fadeOut(200);
}
});
};
答案 0 :(得分:2)
Array.every
,因此该行不起作用:
var show = classes.every(function(aClass) {
使用polyfill(在MDN页面上)或使用for
循环。
使用for
循环,您可以执行以下操作:
var has_all = true;
for (var i = 0; i < classes.length; i++) {
if (!$this.hasClass(classes[i])) {
has_all = false;
break;
}
}
if (has_all) {
$this.fadeIn();
} else {
$this.fadeOut();
}