前提
ボタンに右クリックでメニュー表示がしたいです。
JavaScriptのIDでの取得はたくさんコードが見つけられたのですが、class名での方法がなかったため
どなたかご教示いただけますと幸いです。
実現したいこと
ボタンにIDを付ければうまくいくのですが、
1ページ内に複数同じ右クリック表示をしたいためclass名で取得したい。
発生している問題・エラーメッセージ
Uncaught TypeError: document.getElementsByClassName(...).addEventListener is not a function at window.onload
該当のソースコード
window.onload = function () { document.getElementsByClassName('click-right').addEventListener('contextmenu', function (e) { //マウスの位置をstyleへ設定(左上の開始位置を指定) document.getElementById('contextmenu').style.left = e.pageX + "px"; document.getElementById('contextmenu').style.top = e.pageY + "px"; //メニューをblockで表示させる document.getElementById('contextmenu').style.display = "block"; }); document.body.addEventListener('click', function (e) { //メニューをnoneで非表示にさせる document.getElementById('contextmenu').style.display = "none"; }); }
試したこと
document.getElementById('click-right') →成功
document.getElementsByClassName('click-right') →失敗
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
getElementsByClassNameで取得されるのは配列オブジェクトなので、そこを意識してコードを書けば良いと思います。
回答2件
あなたの回答
tips
プレビュー