Javascript 根据复选框和其他复选框调用函数
这么多支票,但这是我现在正在处理的一个问题。基本上,我的标记中有几个复选框:Javascript 根据复选框和其他复选框调用函数,javascript,jquery,html,jquery-isotope,Javascript,Jquery,Html,Jquery Isotope,这么多支票,但这是我现在正在处理的一个问题。基本上,我的标记中有几个复选框: <input id="only_veggi" type="checkbox" name="ingredients" value="showveggi"> only vegetarian <br> <input id="show_15min" type="checkbox" name="time" value="15min" style="margin-left: -59px;"> 1
<input id="only_veggi" type="checkbox" name="ingredients" value="showveggi"> only vegetarian <br>
<input id="show_15min" type="checkbox" name="time" value="15min" style="margin-left: -59px;"> 15min <br>
<input id="show_28min" type="checkbox" name="time" value="28min" style="margin-left: -59px;"> 28min <br>
<input id="show_45min" type="checkbox" name="time" value="45min" style="margin-left: -59px;"> 45min <br>
<input id="show_60min" type="checkbox" name="time" value="60min" style="margin-left: -59px;"> 60min <br><br>
但我还想检查哪些其他复选框被选中和取消选中,根据这一点,我必须更改同位素过滤器中的class
es。当然,我可以做很多if语句,比如
if(!this.checked && !jQuery('#show_45min').checked && jQuery('#show_60min').checked)
jQuery('#content_container').isotope({ filter: '.sixty', '.fifteen');
{
但这不是解决办法
是否有人知道我如何在勾选和取消勾选时通过所有复选框,并根据状态更改同位素的过滤器class
我希望我说清楚了
提前感谢。您可以对其进行设置,以便每次单击该类的任何复选框时,它都会生成一个包含所有选定项的列表 HTML
<input id="only_veggi" type="checkbox" name="ingredients" value="showveggi"> only vegetarian <br>
<input class="time" id="show_15min" type="checkbox" name="time" value="15min" style="margin-left: -59px;"> 15min <br>
<input class="time" id="show_28min" type="checkbox" name="time" value="28min" style="margin-left: -59px;"> 28min <br>
<input class="time" id="show_45min" type="checkbox" name="time" value="45min" style="margin-left: -59px;"> 45min <br>
<input class="time" id="show_60min" type="checkbox" name="time" value="60min" style="margin-left: -59px;"> 60min <br><br>
谢谢,但是在我尝试该代码之前,当复选框被取消选中时,我不也需要检查吗?这似乎只是检查是否有东西被检查了?我这里有一把小提琴:如果没有检查,会发生什么?
<input id="only_veggi" type="checkbox" name="ingredients" value="showveggi"> only vegetarian <br>
<input class="time" id="show_15min" type="checkbox" name="time" value="15min" style="margin-left: -59px;"> 15min <br>
<input class="time" id="show_28min" type="checkbox" name="time" value="28min" style="margin-left: -59px;"> 28min <br>
<input class="time" id="show_45min" type="checkbox" name="time" value="45min" style="margin-left: -59px;"> 45min <br>
<input class="time" id="show_60min" type="checkbox" name="time" value="60min" style="margin-left: -59px;"> 60min <br><br>
var timeClassLookup = {
show_15min: '.fifteen',
show_28min: '.twentyeight',
show_45min: '.fortyfive',
show_60min: '.sixty'
};
$('.time').click(function() {
var classes = [];
var $checkedBoxes = $('.time:checked');
$checkedBoxes.each(function () {
var checkboxId = $(this).attr('id');
classes.push(timeClassLookup[checkboxId]);
});
$('#content_container').isotope({ filter: classes.join(', ') });
});