This question has been flagged
A widget can intercept only events that occur inside its form,
but how can it intercept an event that has occurred outside of it?
As in my case, when i click on the menu item...


Here is my code
ListRenderer.include({
...
_onContextMenu: function(event) { // Display custom context menu
event.preventDefault();
var target = $(event.currentTarget)[0];
if (target && target.tagName === 'TR' && target.className === 'o_data_row') {
var id = $(event.currentTarget).data('id');
if (id) {
$('.custom-cm')[0].style.display = 'block';
}
}
},

...

});
$(function(){

$('body').append( // Adding a simple menu to the body of document 
'<div class="custom-cm">' +
'<div class="custom-cm__item">Demo #1</div>' +
'<div class="custom-cm__item">Demo #2</div>' +
'<div class="custom-cm__item">Demo #3</div>' +
'<div class="custom-cm__divider"></div>' +
'<div class="custom-cm__item">Demo #4</div>' +
'</div>'
);

window.addEventListener("contextmenu", () => { // Disable browser contextmenu
event.preventDefault();
});

window.addEventListener("click", () => { // If the right button is pressed, hide the custom context menu
$(".custom-cm")[0].style.display = 'none';
}
});


Avatar
Discard