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("click.contextTest");
    $(document).on("click.contextTest", (function(e) {
      if(!$(e.target).is(contextMenu)) {
        contextMenu.hide();
      }
    }));
  }
}));

$(document).on("click.contextMenuItem", '.context-menu-item', (function(e) {
alert('button clicked');
}));