マウスホイール(中央ボタン) クリックのイベントはmousedownで

マウスホイール(中央ボタン) クリックのイベントはmousedownで:

リンククリック時のイベントを書いていましたが、リンクはホイールボタンをクリックして別タブで開くこともあります。

その場合、clickイベントでは発火しないため、mousedownイベントで捕捉する必要があります。

すなわち

const clickEvent = (e) => {} 
 
const a = document.querySelector('a') 
 
a.addEventListener('click', clickEvent) 
a.addEventListener('mousedown', (e) => { 
  if (e.button != 1) { 
    return 
  } 
  clickEvent(e) 
}) 
と中央ボタン判定を加える必要がある。

いっそ左ボタンクリックもmousedownに統合してclickイベントは書かなくてもよい。

clickイベントにも押されたボタンを調べられるbuttonプロパティがあるが、そもそも発火しないため罠というか無駄に継承している感があるような…

左クリックはclick,右クリックは(一応)contextmenuで検知できるのに、中央クリックにイベントがないのは釈然としなかったので調べたが、どうにも見つからない。

wheelイベントもあるのだから、もう一声。あっても良かろうに。


参考

JavaScript 右クリックをキャンセル&処理を割り当てる | TM Life

コメント

このブログの人気の投稿

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-04-30 23:37:32 RSSフィード2021-04-30 23:00 分まとめ(42件)

投稿時間:2023-02-05 02:09:04 RSSフィード2023-02-05 02:00 分まとめ(9件)