Javascript/JQuery内容过滤器

Javascript/JQuery内容过滤器,javascript,jquery,html,Javascript,Jquery,Html,我正在显示我提供的课程,并使用Javascript/jQuery显示/隐藏基于元素类的课程 页面如下: 基本上,脚本隐藏页面上的所有内容,然后显示与类选择器匹配的项目,该选择器由下拉和复选框选项组成。一切都很好,只是我想允许在应用多个过滤器时保持结果静态。e、 g.如果他们选择作者,然后选择级别,然后选择受众,我希望适用于所有3个选择者的课程保留,而其他选择者则隐藏 此处为HTML: 函数ApplyFilters(){ var效应=‘Magicitime掉期’; var reseteffect

我正在显示我提供的课程,并使用Javascript/jQuery显示/隐藏基于元素类的课程

页面如下:

基本上,脚本隐藏页面上的所有内容,然后显示与类选择器匹配的项目,该选择器由下拉和复选框选项组成。一切都很好,只是我想允许在应用多个过滤器时保持结果静态。e、 g.如果他们选择作者,然后选择级别,然后选择受众,我希望适用于所有3个选择者的课程保留,而其他选择者则隐藏

此处为HTML:

函数ApplyFilters(){
var效应=‘Magicitime掉期’;
var reseteffect='magictime twisterInUp';
var courses=jQuery(“.courseContainer”);
jQuery(“p.zeroResults”).text(“”.css(“页边空白顶部”、“0px”);
当然。隐藏();
课程。removeClass(效果);
课程。removeClass(重置效果);
var speakerFilter=jQuery(“#author_filter”).val();
var levelFilter=jQuery(“#level_filter”).val();
var audencefilter=jQuery(“受众过滤器”).val();
var Office365Filter=GetOffice365Value();
var classFilter=speakerFilter+levelFilter+audencefilter+Office365Filter;
var count=jQuery(classFilter);
如果(count.length>0){
//jQuery(classFilter.hide().fadeIn(1500);
jQuery(classFilter.hide().addClass(effect.show());
}否则{
jQuery(“p.zeroResults”).text(“没有与您选择的结果匹配的结果。请‘重置’您的过滤器”).css(“页边距顶部’,“-50px”);
}
}
[two_third]
SharePoint 2013/Office 365课程
与SharePoint 2010相比,SharePoint 2013/Office 365带来了全新的界面和许多新的改进功能。观看以下基于视频的课程,深入探索SharePoint 2013产品和技术。
筛选类别依据:
作者
全部的 马克安德森 克里斯·贝克特 格里布里马库姆 梅丽莎·埃斯奎贝尔 史蒂夫·福克斯 艾拉·富克斯 莎拉·哈斯 杰森·希梅尔斯坦 霍利迪 亚当·莱维坦 詹姆斯·麦卡利斯特 克里斯·麦克纳尔蒂 艾格尼斯莫尔纳 本杰明·尼奥林 迈克尔·诺埃尔 雅罗斯拉夫·彭萨斯基 阿西夫·雷赫马尼 达尔维什沙德拉万 斯科特·希勒 杜克斯·雷蒙德·西 费边·威廉姆斯 级别
全部的 概述 中间的 先进的 观众
全部的 设计师 开发商 信息工作者 IT专业人士 超级用户 项目经理 Office 365
[/两个三分之一] [最后三分之一] 订阅以查看我们的整个SharePoint视频教程集。

[/最后三分之一]


我接受了克里斯的建议,基于不匹配的元素推迟了隐藏

函数ApplyFilters(){
var效应=‘Magicitime掉期’;
var reseteffect='magictime twisterInUp';
var courses=jQuery(“.courseContainer”);
jQuery(“p.zeroResults”).text(“”.css(“页边空白顶部”、“0px”);
课程。removeClass(效果);
课程。removeClass(重置效果);
var speakerFilter=jQuery(“#author_filter”).val();
var levelFilter=jQuery(“#level_filter”).val();
var audencefilter=jQuery(“受众过滤器”).val();
var Office365Filter=GetOffice365Value();
var classFilter=speakerFilter+levelFilter+audencefilter+Office365Filter;
courses.not(classFilter.hide();
如果(classFilter==“”){
courses.hide().addClass(effect.show();
}否则{
var count=jQuery(classFilter);
如果(count.length>0){
jQuery(classFilter.show();
}否则{
jQuery(“p.zeroResults”).text(“没有与您选择的结果匹配的结果。请‘重置’您的过滤器”).css(“页边距顶部’,“-50px”);
}

}
为什么不等待调用courses.hide(),然后使用.courses.not(classFilter.hide())?假设您想要的是后续筛选器在回闪之前不会触发隐藏?@ChrisCarew-这是所需的结果。我会看一看。小心!您在每个锚点上使用了两个类定义,这可能会导致意外行为。。。