【问题标题】:Jquery filter script helpjQuery过滤脚本帮助
【发布时间】:2009-12-04 01:26:19
【问题描述】:

我正在使用过滤器脚本,我正在尝试稍微改变 jquery。

(在此处查看演示:http://www.askthecssguy.com/2009/03/checkbox_filters_with_jquery_1.html

现在您已经看过演示,您知道一旦取消选中某个框,它就会过滤掉带有这些标签的结果。例如,如果您取消选择“wordpress”标签,则包含该标签的所有项目都会被过滤和删除。

但是,如果您有一个带有“wordpress”和“ajax”标签的项目,然后取消单击 wordpress 复选框,该项目就会消失。我希望该项目留下,因为它仍然有一个未选中的标签(ajax)。如果所有标签都被取消选择,我只希望一个项目消失。有人可以看看 jquery(下半部分)并告诉我在哪里可以更改它以使其正常工作吗?

谢谢!

【问题讨论】:

    标签: ajax jquery filter


    【解决方案1】:

    代码变得有点复杂......我想我会将策略转变为这样的:(在输入框的点击事件内)

    // First get all the checked inputs
    var checkedValues = [];
    $("input.dynamicFilterInput:checked").each(function() {
        checkedValues.push($(this).val());
    });
    
    // Now get all the filterable items
    $("ul.filterThis li").each(function() {
        // If the item doesn't have a class that corresponds with one of the
        //    the checked items then hide it
        var found = false;
        for (var i=0; i<checkedValues.length; i++) {
            if ($(this).hasClass(checkedValues[i])) {
                found = true;
                break;
            }
        }
        if (!found) {
            $(this).slideUp();
        } else {
            $(this).slideDown();
        }
    });
    

    所以基本上每次更改任何一个输入时,您都会重新计算整个项目列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-24
      • 1970-01-01
      • 1970-01-01
      • 2022-06-24
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 2011-10-05
      相关资源
      最近更新 更多