我有一个过滤器元素,如jsfiddle所示。
是否可以在过滤器链接旁边显示用户选择的过滤器的数量?
注意:在我的情况下,过滤器元素是动态的,因此不能使用元素 id 或名称作为选择器,而是<div class="filtersDiv">
静态的。
更新:
甚至表单元素都是动态的,元素名称将以user_
, 修改的 jsfiddle 开头,希望这可能有助于解决问题。
我有一个过滤器元素,如jsfiddle所示。
是否可以在过滤器链接旁边显示用户选择的过滤器的数量?
注意:在我的情况下,过滤器元素是动态的,因此不能使用元素 id 或名称作为选择器,而是<div class="filtersDiv">
静态的。
更新:
甚至表单元素都是动态的,元素名称将以user_
, 修改的 jsfiddle 开头,希望这可能有助于解决问题。
嘿更新了你的小提琴
代码在这里
$(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);
});
});
在过滤器锚下方添加一个跨度
<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)
});