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(', ') });
});