4

ある種のカスタムチェックボックスを作成しました。基本的には2つのチェックボックスのセットです。domの準備ができると、両方のチェックボックスがオンになります。ユーザーは1つだけチェックを外すことができます。


これが私がそれを実装しようとした方法です。

私はそのような容器を持っています

<div class="container">
     <input name="my_checkbox_1" type="checkbox" checked="checked">
     <label for="my_checkbox_1" class="on">Hello</label>
     <input name="my_checkbox_2" type="checkbox" checked="checked">
     <label for="my_checkbox_2" class="on">World</label>
</div>

ユーザーがラベルをクリックすると、最も近いコンテナが見つかります

parent = $(this).closest(".container");

親ができたら、そのようにチェックされているチェックボックスの数を見つけます

len = $(parent).find("input:checkbox:checked").length;

lenが0の場合、適切なエラーでユーザーに警告しようとします。これは他のすべてのブラウザで機能しますが、つまり(私はそこに驚きを言うことはできませんか?)。しかし、私はここで何が間違っているのですか?

覚えておいてください、私はユニークな名前を持つチェックボックスを備えたそのようなコンテナをたくさん持っています。

私はhttp://jsfiddle.net/kiranruth/UeEyB/1/でコードを使ってフィドルを作成しました

4

1 に答える 1

6

ウィンドウの親プロパティを上書きしているため、親をローカル変数として宣言するか、名前を変更する必要があります

変数の前にvarを追加するだけです

var parent = $(this).closest(".container");
var len = $(parent).find("input:checkbox:checked").length;
于 2013-01-30T16:46:01.007 に答える