2013-10-18 17 views
7

今日、Jqueryで私の心を失い始めていますが、私は他の質問を控えていますが、これまでのところ何もできませんでした。私は単純なhtml構造を持っています(forループで動的に追加されています)。セレクタのJqueryクリックイベントが子をターゲットとして返します

<div id="cell'+i+'" class="cell emptyCell"> 
    <div class="handle"></div> 
    <div class="content"></div> 
</div> 

"on"メソッドを使用して、クラス ".emptyCell"の要素のクリックイベントをカスタム関数でバインドしています。

$(document).on('click','.emptyCell', function(e){ 

    console.log(e.target.id); 

}); 

しかし、ユーザーが.content divの(emptyCellの子)をクリックしたとき.content要素がここにidを持っていないので、それがイベントをキャッチし、コンソール版画「未定義」。

これはどのように可能ですか? .on関数は、クラス.emptyCellの要素のみをバインドするはずですか?あなたは、あなたが使用することができますemptyCellを参照したい場合は、あなたの助け

+0

私はそうは思わない、重複していると思うし、ターゲットはiniその答えに爆発的なイベントがあります – webaba

答えて

20

e.targetため

おかげで、クリックは、(それがhandleまたはcontent要素にすることができる)が起こった実際の要素を指しthisまたはe.currentTarget

$(document).on('click','.emptyCell', function(e){ 
    console.log(this.id); 
    console.log(e.currentTarget.id); 
}); 

デモ:Fiddle

+0

ありがとうございました!私は今よく理解しています... – webaba

+0

ありがとう、あなたはそれを完全にはっきりと説明した – pastullo

関連する問題