2011-06-17 9 views
0

私はリストを持っています。その中に私はいくつかのチェックボックスを持っています。私は2つの異なる方法でチェックボックスをチェックしようとしています。 1つはデフォルトの方法で、もう1つは 'li'をクリックするときです。コードへのリンクはhereチェックボックスのデフォルト機能が失われています

です。私がliをクリックすると、チェックボックスは正しくチェックされますが、チェックボックス自体をクリックすると、それは表示されません。何が問題なの?

答えて

1

これは、クリックイベントのターゲットを確認することで解決できます。 li要素でない場合は、コードを実行しないでください。

$("#divclass li").click(function(e){ 
    if(e.target.nodeName == "LI") { 
     //Your code 
    } 
}); 

は、例えば、このupdated fiddleを参照してください。

+0

これは機能します。なぜ私のコードは機能していませんでした。私は既にLIのクリックイベントを使用していましたか?私は$( "。divclass li")をクリックします(...? – user781178

+0

)。チェックボックスは2回切り替えられ、残ります;状態は 'patrick'で表示されます。 – Vivek

+0

あなたのコードは動作していませんでした。 ( 'li'要素の子である)チェックボックスをクリックすると、チェックボックスは通常のチェックボックスの動作に従ってチェックされますが、チェックボックスは' li'の内部にあるので、 'li'のコードクリックイベントも実行され、チェックボックスは再びオフになります。 –

1

jsの代わりにlabelを使用できます。 参照here

<div class="divclass" id="divclass"> 
    <ul> 
     <li><label><input type="checkbox" name="checkclass" class="checkclass" value="1" />Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</label></li> 
     <li><label><input type="checkbox" name="checkclass" class="checkclass" value="2" />Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus.</label></li> 
     <li><label><input type="checkbox" name="checkclass" class="checkclass" value="3" />Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec consectetuer ligula vulputate sem tristique cursus. Nam nulla quam, gravida non, commodo a, sodales sit amet, nisi.</label></li> 
     <li><label><input type="checkbox" name="checkclass" class="checkclass" value="4" />Pellentesque fermentum dolor. Aliquam quam lectus, facilisis auctor, ultrices ut, elementum vulputate, nunc.</label></li> 
    </ul> 
</div> 
+0

@clyish、あなたの回答も役に立ちました – user781178

関連する問題