2012-01-06 5 views
0

ビルドしようとしているサイトで少し問題が発生しています。サイトの一方の側には、検索結果に影響するリスト内のボックスをユーザーがチェックできる「フィルタ」があります。 「私のCSSで複数の配列を使ってチェックボックスを検証していますか?

/// Makes checkboxes in the filter add and remove the proper class based on whether they're checked or not 
$('.filterlist input:checkbox').click(function checkboxes(){ 
    $thislist = $(this).closest('.filterlist li > ul'); 
    $checkboxes = $thislist.closest('li > input:checkbox').serializeArray(); 
    if($checkboxes.length < 1) { 
    $(this).closest('ul.filterlist > li').removeClass('itemselected'); 
    } 
    else if($checkboxes.length > 0) { 
    $(this).closest('ul.filterlist > li').addClass('itemselected'); 
    } 
}); 

はほとんど

ここで私がこれまで持っているコードだ...私はjQueryのに初心者だが、私はこの仕事をするために十分なコードをつなぎ合わせることができましたitemselected 'は私が追加しようとしているクラスです。問題は、 '.filterlist'の下に複数のチェックボックスのリストがあることです。最初のリストのチェックボックスをチェックすると、クラスが正しく追加されます。リスト内のすべてのクラスを削除すると、クラスが正しく削除されます。

これは、1つの配列しか使用していないためですが、リストのそれぞれに異なる配列を作成する方法を理解できないため、最初のリストにチェックされていても、 2番目のリストにあるliのクラスは、そこにチェックされていなければ、その逆も同様です。

申し訳ありませんが、このような長い質問です、私は具体的にしようとしていました。

お返事ありがとうございました! =]

+2

これは、[jsFiddle](http://jsfiddle.net)の例を作成するとこれが意味をなさつだと思います。 – Chad

+1

jsFiddleは1000以上の単語を話します。 –

+0

jsFiddleの使い方はわかりませんが、http://jsbin.com/ijuqow/edit#previewでその例を作りました。 ご覧のとおり、コードは機能しますが、一番下のチェックボックスリストの下にあるチェックボックスリストの1つを選択してチェックを外すと、そのクラスは両方とも同じ配列に追加されるため、クラスを削除できないため、配列の値を1より大きい値として読み込みます。 – Alurict

答えて

0

このようなもの??

+0

Hey 、ありがとう!それは完璧に働いた。 ^^ 編集:最初の親の上にある親を見つけるために.parent()。parent()をやってみることはできませんでした。それは本当に便利です、もう一度あなたの助けに感謝します。 =] – Alurict

関連する問題