2009-05-19 23 views
4

誰か助けてくれますか? HTMLコードがあります:クリックイベントから子要素を取り除く方法

<h3> 
    <label> 
     <input type="checkbox" name="country" value="us" /> United States 
    </label> 
</h3> 
<p>Some content goes here</p> 

私はH3タグをクリックすることで、P要素を切り替えたいが、私はラベル

をクリックした場合、私は切り替えることwan'tはありませんあなたがチェックする必要が
$('h3').click(function() { 
    // Does something goes here? 
    $(this).next('p').toggle(); 
} 
+0

なぜですか? pのコンテンツがあなたが切り替えているチェックボックスに接続されているという考えはありませんか? – cgp

+0

私はそのラベルがHTML要素ではなく実際のテキストを意味すると仮定しています。 – tvanfosson

+0

(チェックボックスはラベルによって切り替えられます) – cgp

答えて

17

アクションのターゲット

$('h3').click(function(e) { 
    // if they clicked the h3 only 
    if (this == e.target) { 
    $(this).next('p').toggle(); 
    } 
} 

altCognitoの提案も機能しますが、より多くのコードです。

+1

+1、ああ、とにかくこの方がよかった。 – cgp

+0

ありがとうございます、皆さん! :) – sasa

2

あなたがのstopPropagation(したい)

$('h3').click(function() { 
    // Does something goes here? 
    $(this).next('p').toggle(); 
} 
$('label').click(function(e) { 
    e.stopPropagation(); 
} 
関連する問題