选择时的 jQuery 过滤器

标签 jquery html css

我正在尝试创建一个 jQuery 过滤器来过滤一些 div。

HTML 过滤器是 选择一个选项后,会将 class="active"添加到该行(例如:)

<div class="panel style1 arrow-right">
    <h4 class="panel-title"><a class="collapsed" data-toggle="collapse" href=
    "#board-type-filter">Board Type</a></h4>
    <div class="panel-collapse collapse" id="board-type-filter">
        <div class="panel-content">
            <ul class="check-square filters-option">
                <li data-board-id="board-all">
                    <a href="#">Toate<small class="total"></small></a>
                </li>
                <li data-board-id="RO">
                    <a href="#">Room Only<small class="total-ro"></small></a>
                </li>
                <li data-board-id="BB">
                    <a href="#">Bed and Breakfast<small class=
                    "total-bb"></small></a>
                </li>
                <li data-board-id="CB">
                    <a href="#">Continental Breakfast<small class=
                    "total-cb"></small></a>
                </li>
                <li data-board-id="HB">
                    <a href="#">Half Board<small class="total-hb"></small></a>
                </li>
                <li data-board-id="FB">
                    <a href="#">Full Board<small class="total-fb"></small></a>
                </li>
                <li data-board-id="AI">
                    <a href="#">All Inclusive<small class=
                    "total-ai"></small></a>
                </li>
                <li data-board-id="UI">
                    <a href="#">Ultra All İnclusive<small class=
                    "total-ui"></small></a>
                </li>
                <li data-board-id="SC">
                    <a href="#">Self Catering<small class=
                    "total-sc"></small></a>
                </li>
            </ul>
        </div>
    </div>
</div>

要过滤的HTML内容是:

<div data-board="Half Board">Half Board</div>
<div data-board="Full Board">Full Board</div>
<div data-board="All Inclusive">All Inclusive</div>
....

在此之前,我有一个带有复选框的过滤器,但它的样式不像上面那样。 旧的 jQuery 过滤器是:

var grabVal = "";
      $('input[type=checkbox]').click(function(e){
      $("input[type=checkbox]").each(function(){
      grabVal = $(this).val();
              if(!$(this).is(":checked")){
      $("div[data-board='"+grabVal+"']").hide();
              }else{
      $("div[data-board='"+grabVal+"']").show();
              }
          });

              if(!$("input[type=checkbox]").is(":checked")){
      $("div").show();   
          }

Witch 是点击操作的 scipt 还是具有数据 url 操作(页面加载并从 url 获取过滤器信息)的 scipt 更好?

任何建议将不胜感激。如果您需要更多信息,请告诉我。 也请原谅我的n00bie。 :)

最佳答案

如果我做对了,你必须在 <li>...</li> 之间创建一个连接您单击的元素以及连接到所选值的信息的容器(或多个容器)。

我假设了一个基于自定义类的解决方案。例如,

<li data-board-id="HB"> <a href="#">Half Board<small class="total-hb"></small></a>

点击它会显示以下容器的内容并隐藏其他容器的内容:

<div class="detail HB-detail">Details for Half Board</div>

逻辑处理如下:

$("#board-type-filter LI").on("click", function () {
    $(".detail").hide(500);
    $("." + $(this).attr("data-board-id") + "-detail").show(500)
});

此处为完整示例(经过编辑以支持 all 选项):http://jsfiddle.net/8vwbpLtv/3/

关于选择时的 jQuery 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28558607/

相关文章:

html - 如何使用 CSS 网格布局在 CSS 中制作固定列?

javascript - 如果 div 有图像,则将该 img 放在其他 div 中

html - 为什么是top :50% in css not working?

html - 使用angularjs指令将绝对div与另一个div的右边缘对齐

javascript - 如何为html中的图像分配编号?

Jquery Navigation Toggle 在页面下方太远

javascript - 如何在 Angular typescript 或 jquery 中全局更新变量?

jQuery UI 模态对话框仅以第二次加载为中心(来自外部文件的内容)?

wcf - 使用 POST 方法从 jQuery Ajax 调用 WCF 服务

html - 带有选项标签的 CSS - 编辑文本颜色