0

我有一个过滤器元素,如jsfiddle所示。

是否可以在过滤器链接旁边显示用户选择的过滤器的数量?

注意:在我的情况下,过滤器元素是动态的,因此不能使用元素 id 或名称作为选择器,而是<div class="filtersDiv">静态的。

更新:

甚至表单元素都是动态的,元素名称将以user_, 修改的 jsfiddle 开头,希望这可能有助于解决问题。

4

2 回答 2

1

嘿更新了你的小提琴

小提琴

代码在这里

$(document).ready(function(){
    $(document).on('click',"a#filters",function(e)
    {
        e.preventDefault();
        $("div.filtersDiv").toggle('slow');
    });
    var count=0;
    $('input:checkbox').on('change', function(){ 
     if($(this).is(':checked')){
            count +=1;
        }else{
           count -=1; 
        }
        $("#countid").html(count);
    });
    $('input[name=user_gender]').on('change', function(){
       $("#countid").html(count += 1);
        $('input[name=user_gender]').unbind('change');
     });  
   $('input[type=text]').blur(function(){
       if($.trim($(this).val()) !=''){
        count +=1;   

       }else{
         count -=1;              
       }
    $("#countid").html(count);   
   }); 
});
于 2013-08-27T11:01:13.447 回答
1

在过滤器锚下方添加一个跨度

<a href="#" id="filters">Filters</a>
<span id="count"></span>

$(document).ready()并在你的处理程序中添加这个处理程序

$('.filtersDiv').on('keyup focus blur change', ':input', function(){
    var num_of_active_filters =  $(":text[value!=''], :file, :checkbox:checked, select, textarea, :radio:checked").length;
    $('#count').text(num_of_active_filters)
});
于 2013-08-27T11:07:09.173 回答