I've got a long input:selectbox
list. The list is essentially a filter that shows/hides information on the page based on what's selected/not selected.
In the list, if something is checked I want the corresponding <div>
to show. If something is unchecked I want the corresponding <div>
to hide.
Simple enough? Apparently not for me. :(
Code:
$('.ddFilter input:checkbox').off().on('click', function() {
$('.hideFrequent').slideUp();
$('input:checkbox:not(:checked)').each(function() {
$('div.' + $(this).val()).slideUp();
});
$('input:checkbox:checked').each(function() {
$('div.' + $(this).val()).slideDown();
});
});
The first nested function, $('input:checkbox:not(:checked)')
, always runs twice. The first time it runs it hides everything that is not checked. The second time it runs it hides everything.
If that function comes after the :checked
function, then no matter how you interact with the list, everything is always hidden. If I put that function first, everything that is unchecked is hidden, then all things are hidden, then the :checked
function runs and re-displays the <divs>
associated with the checked checkboxes.
What'm I doing wrong?
Aucun commentaire:
Enregistrer un commentaire