##実装したいこと
サイトを参考に
例えば卵焼き上で右クリックしたらオリジナルのメニューが出て、wikipediaとcookpadを選べ、どちらかを選ぶと卵焼きの各そのリンクに飛ぶ
麻婆豆腐上で右クリックしたらオリジナルのメニューが出て、wikipediaとcookpadを選べ、どちらかを選ぶと麻婆豆腐の各そのリンクに飛ぶ
というシステムを作りたかったので、悩んでいる部分が解決できれば麻婆豆腐・唐揚げとコピペで半ば強制的に実装することは可能だと思うのですが、どのようにすればいいでしょうか。
##悩んでいる部分
document.getElementById("main").addEventListenerで卵焼き、麻婆豆腐、唐揚げ上で右クリックするとメニューが出現したため、
じゃmainの子要素であるcook1クラスを指定すればいいんだと思い**document.getElementById("main").getElementsByClassName('cook1').**を記述したところメニューが出現しなくなりました。どうしてなのでしょうか、mainの子要素であるcook1クラスを指定するという考えが間違えているのでしょうか。
##コード
html
1<!DOCTYPE html> 2<meta http-equiv="content-type" charset="utf-8"> 3<html> 4 <head> 5 <title>JavaScriptでオリジナルの右クリックメニューを作成する方法</title> 6 <style> 7 #contextmenu{ 8 display:none; 9 position:fixed; 10 left:0px; 11 top:0px; 12 width:200px; 13 height:100px; 14 border:1px solid #000; 15 background-color:#fff; 16 } 17 #contextmenu li{ 18 cursor:pointer; 19 } 20 </style> 21</head> 22<body onContextmenu="return false;"> 23 <div id="main"> 24 <p class="cook1">卵焼き</p> 25 <p class="cook2">麻婆豆腐</p> 26 <p class="cook3">唐揚げ</p> 27 </div> 28 <div id="contextmenu"> 29 <ul> 30 <li onClick="menu1()">1.Wikipedia</li> 31 <li onClick="menu2()">2.cookpad</li> 32 </ul> 33 </div> 34 <script> 35 window.onload = function(){ 36 document.getElementById("main").getElementsByClassName('cook1').addEventListener('contextmenu',function (e){ 37 document.getElementById('contextmenu').style.left=e.pageX+"px"; 38 document.getElementById('contextmenu').style.top=e.pageY+"px"; 39 document.getElementById('contextmenu').style.display="block"; 40 }); 41 document.body.addEventListener('click',function (e){ 42 document.getElementById('contextmenu').style.display="none"; 43 }); 44 } 45 function menu1(){ 46 open( "url", "_blank" ) ; 47 } 48 function menu2(){ 49 open( "url", "_blank" ) ; 50 } 51 52 </script> 53 </body> 54</html>
回答1件
あなたの回答
tips
プレビュー