複数の要素Aの手前に大きな要素Bが重なってる状態で、見ため的にAの上でクリックしたときAのイベントを発火※させるにはどうしたら良いでしょう?Bのclickハンドラをreturn false;してもだめでした...
※「どのAの上でクリックされたか」「A内のマウス座標」などの情報をAのハンドラに通知すること
Bをクリックした際にA情報を取得するという方法はどうでしょうか。
そのAの情報をどのように取得するかが知りたいのです。
それはHTMLの構造によります。
複数のAの上に、大きなBがあるってことだよね?ロード時にそれぞれのAの座標と大きさを配列に登録して、Bのクリックイベントで、マウス座標を元に作成した配列を参照することでなんとかなりそうだけど、どう考えても非効率だから、「複数のAの上に、大きなBがある」という前提が間違っているよ。通常なら、そういうややこしい構造にならないようにするはず。
Bを pointer-events:none にする
私もこれです
イベントのバブリング/キャプチャリングについて一回ちゃんと調べて理解したほうがいいかと思いますよ。
座標を取得してマウスが座標内に入ってクリックしたら、って判定文
みんなの回答 5 件
Bをクリックした際にA情報を取得するという方法はどうでしょうか。
複数のAの上に、大きなBがあるってことだよね?
ロード時にそれぞれのAの座標と大きさを配列に登録して、Bのクリックイベントで、マウス座標を元に作成した配列を参照することでなんとかなりそうだけど、どう考えても非効率だから、「複数のAの上に、大きなBがある」という前提が間違っているよ。通常なら、そういうややこしい構造にならないようにするはず。
Bを pointer-events:none にする
イベントのバブリング/キャプチャリングについて一回ちゃんと調べて理解したほうがいいかと思いますよ。
座標を取得してマウスが座標内に入ってクリックしたら、って判定文
関連するトピックス