2012-05-18 23 views

答えて

76
$("div").click(function(e) { 
     if($(e.target).is('p')){ 
      e.preventDefault(); 
      return; 
     } 
     alert("woohoo!"); 
    }); 

クリックのターゲットを確認してください。この方法では、別のイベントをバインドする必要はありません。

+6

不必要な 'e.preventDefault()' –

+1

は、残りのコードを見ることなく、言い表せません。おそらく – mkoryak

+1

は、この場合はe.preventDefault()とe.stopPropagation()を呼び出すのと同じですが、代わりに 'return false'を使用します。 Check http://api.jquery.com/category/events/event-object/ – Oriol

-2
$("div > span").click(function() { 

    alert("woohoo!"); 

}); 

しかし、html要素にIDを提供する方がよいでしょう。

+0

OPは他の子の中でスパンとしては機能しません、OPは "他のすべて"と言いますが、そのコードは子に限定されていないと解釈されます。 –

+0

あなたが答える前に、質問をお読みください。 –

2
<script> 
$(document).ready(function() { 
    $("div :not(p)").click(function(event) { 
     alert("woohoo!"); 
    }); 
}); 
</script> 

これは、<div>コンテナの子としてテキストノードを気にしないことを意味します。

+1

これは動作しません。 – Wtower

+1

@Wtowe、はい、それは動作します、証拠はここにありますhttp://jsfiddle.net/n983hzvn/1/ –

+0

よろしく、私は "... div内に..."声明を見落としました。 http://jsfiddle.net/n983hzvn/2/ –

関連する問題