JSFiddle - React, Tailwind, and code Playground
HTML
<div class="container">
Right click me!
</div>
<div class="contextmenu hidden">Context menu
<br>
<button class="context-menu-item" type="button">Click me!</button>
</div>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
.container {
background: #fff;
border-radius: 4px;
padding: 20px;
font-size: 25px;
text-align: center;
transition: all 0.2s;
margin: 0 auto;
width: 300px;
height: 100px;
}
.contextmenu {
background: #fff;
border-radius: 4px;
padding: 20px;
font-size: 25px;
text-align: center;
transition: all 0.2s;
margin: 0 auto;
width: 300px;
height: 100px;
}
.hidden {
display: none;
}
JavaScript
var container = $(".container")
var contextMenu = $(".contextmenu")
$(document).on("contextmenu", (function(e) {
e.preventDefault();
if ($(e.target).is(container)) {
contextMenu.show();
$(document).off("mousedown.contextTest");
$(document).on("mousedown.contextTest", (function(e) {
if(!$(e.target).is(contextMenu)) {
contextMenu.hide();
}
}));
}
}));
$(document).on("click.contextMenuItem", '.context-menu-item', (function(e) {
alert('button clicked');
}));