0

カスタムコンテキストメニューが必要なので、それを使用addEventListenerしますが、div2ではなくdiv1に配置したいのですが、同じリスナーを追加せずにそれを行うにはどうすればよいですか?stopPropagation()

<html>
<head>
</head>
<body>
<div id="div1" style="background-color:green;border:3px solid black;width:300px;height:300px;margin:auto;">
<div id="div2" style="background-color:yellow;border:3px solid black;width:100px;height:100px;margin:auto;margin-top:-50px;">
some text
</div>
</div>
<script>
document.getElementById('div1').addEventListener('contextmenu', function(e)
    {
    console.log('contextmenu');
    });
</script>
</body>
</html>
4

2 に答える 2

3

ハンドラーでイベント ターゲットを確認し、ターゲットが の場合は中止し<div2>ます。

于 2013-07-16T16:36:14.470 に答える
0

falseaddEventListener の 3 番目のパラメータとして 追加

document.getElementById('div1').addEventListener('contextmenu', function(e)
{
    console.log('contextmenu');
}, false);

または if(e.currentTarget.getAttribute("id") != "div1") e.preventDefault();

于 2013-07-16T17:04:50.703 に答える