javascript - How do I uncheck a jquery checkbox and have the remaining checkbox'd results still available? -
as can see in link, when uncheck "all games", of results go hidden, though there still checkboxes checked necessary list result shown.
i trying avoid removing results when uncheck games checkbox.
the html:
<div id="left-col"> <h1>options</h1> <div> <input name="action-areas[]" id="areas_all" value="4" class="type_check" type="checkbox"> <label for="areas_all">all games</label> </div> <div> <input name="action-areas[]" id="areas_2d" value="0" class="type_check" type="checkbox"> <label for="areas_2d">2d</label> </div> <div> <input name="action-areas[]" id="areas_3d" value="1" class="type_check" type="checkbox"> <label for="areas_3d">3d</label> </div> <div> <input name="action-areas[]" id="areas_mobile" value="2" class="type_check" type="checkbox"> <label for="areas_mobile">mobile</label> </div> <div> <input name="action-areas[]" id="areas_multiplayer" value="3" class="type_check" type="checkbox"> <label for="areas_multiplayer">multiplayer</label> </div> </div> <div id="right-col"> <h1>list items</h1> <ul id="case-studies"> <li class="type_hidden areas_all areas_2d">super mario bros.</li> <li class="type_hidden areas_all areas_3d">starfox</li> <li class="type_hidden areas_all areas_2d areas_mobile">angry birds</li> <li class="type_hidden areas_all areas_multiplayer areas_3d">de_dust</li> <li class="type_hidden areas_all areas_2d">limbo</li> <li class="type_hidden areas_all areas_2d areas_3d areas_mobile">doom</li> </ul> </div>
the javascript:
$(document).ready(function(){ $("input.type_check").attr("checked", "true").click(function() { if($(this).is(':checked')) { $("#case-studies li."+$(this).attr('id')).removeclass('type_hidden'); $("#case-studies li").not(".type_hidden, .start_hidden").slidedown(); } else { $("#case-studies li."+$(this).attr('id')).addclass('type_hidden'); $("#case-studies li."+$(this).attr('id')).slideup(); } }); $("input.start_check").attr("checked", "").click(function(){ if($(this).is(':checked')) { $("#case-studies li."+$(this).attr('id')).removeclass('start_hidden'); $("#case-studies li").not(".type_hidden, .start_hidden").slidedown(); } else { $("#case-studies li."+$(this).attr('id')).addclass('start_hidden'); $("#case-studies li."+$(this).attr('id')).slideup(); } }); });
try
$(document).ready(function(){ var parts = $("input.type_check:not(#areas_all)"); parts.click(function() { if($(this).is(':checked')) { $("#case-studies li." + this.id).removeclass('type_hidden').slidedown(); } else { var cls = parts.filter(':checked').map(function(){ return '.' + this.id; }).get(); $("#case-studies li").not(cls.join(',')).addclass('type_hidden').slideup();; } }); $('#areas_all').click(function(){ parts.prop('checked', this.checked).each(function(){ $(this).triggerhandler('click') }) }).prop('checked', true).triggerhandler('click') });
demo: fiddle
Comments
Post a Comment