jQueryで、下記のようにクリックされたdivのclassを監視しているとして、

$("div").click(function(event) {
console.log($(this).attr("class");
})
一番下のレベルの子の要素を特定するにはどのようにすればいいでしょうか。
現状ですと、クリックしたところに重なっている(?)divの全てのものが取得出来てしまいます。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/02/12 15:57:47
  • 終了:2013/02/19 16:00:04

回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4443ベストアンサー獲得回数18252013/02/12 21:47:05

ポイント100pt

DIV 要素が入れ子になった場合の話ですよね。
クリックのようなイベントは、子から親へと伝搬します。
親へのイベントの伝搬を止めるには、Event.stopPropagation() を使います。

例えば、こんな感じ。

<html>
<head>
<style type="text/css">
DIV {
    border: 1px blue solid;
    padding: 2em;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>
<script>
$(function() {
    $("DIV").click(function(event) {
        console.log($(this).attr("class"));
        event.stopPropagation();        /* ★これ! */
    })
});
</script>
</head>
<body>
<div class="C1">
    <div class="C2">
        <div class="C3">
            <div class="C4">
                コンテンツ
            </div>
        </div>
    </div>
</div>
</body>
</html>
id:Hajimex

ありがとうございます。

2013/02/12 22:48:12

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません