1つのイベントハンドラーでこれを行う方法があることを願っています。説明させてください:
私が何を扱っているのかという考えを無駄にすることなく複製するこの単純なhtmlスニペットを考えてみましょう。
<div class="navRow">
<!-- 5 child divs in here -->
<div id="box-bambin" class="yellow-box navbox">
Content 1
</div>
<div id="box-mamiepom" class="green-box navbox">
Content 2
</div>
<div id="box-amusailes" class="orange-box navbox">
Content 3
</div>
<div id="box-fracomousse" class="red-box navbox">
Content 4
</div>
<div id="box-pommeEnchantee" class="blue-box navbox">
Content 5
</div>
</div>
すべての内部divにイベントハンドラーを割り当てましたが、外部divに1つのイベントハンドラーを設定して、内部divのイベントをキャプチャできると確信しています。外側のdiv.navRowにイベントハンドラーを設定すると、マウスが外側のdivイベントをキャプチャします。
$('.navRow', context).mouseover(function (event, domEle) {
var targetBox = $(event);
console.log("captured event target = " + event.currentTarget);
$('.navRow').each(function(){
if($(this).attr('id') == $(event.target).attr('id')){
// Found match do nothing.
console.log("matched = " + $(this).attr('id'));
} else{
console.log("this = " + $(this).attr('class'));
//* change for image.
}
});
});
この時点で、私は単にマウスオーバーされた内部divを取得しようとしています。どうか、私は自分がしている悪い使い方についての批評/ヒントを非常に必要としています。私が試したことは、マウスオーバーされた内部要素#idを私に与えません。
.targetプロパティとcurrentTargetプロパティを試しましたが、適切な内部divオブジェクトIDが提供されません。
これを回避する方法はありますか、それともすべての内部オブジェクトをイベントハンドラーにバインドする必要がありますか?
- 同様のコードが内部イベントハンドラーで適切に機能し、可能であれば1つのイベントハンドラーを使用してコードの動作を複製したかっただけです。
これがより大きなアプリケーションがどのように機能するかを考えていました。つまり、これらすべてのイベントハンドラーがないと、物事がいくらか単純化されるということです。
ありがとうSO。