Si queremos que cierto elemento del DOM tenga desactivado el menú del botón derecho por defecto para lanzar nuestro propio evento, podemos hacerlo con el siguiente código:
$('.elemento').bind('contextmenu', function(e) { return false; });
Para lanzar el evento que queramos, debemos de capturarlo con «which» mediante:
if (e.which == 3) { alert('Has pulsado el botón derecho (:'); }
Con lo que, incorporado a la función anterior quedaría así:
$('.elemento').bind('contextmenu', function(e) { if (e.which == 3) { alert('Has pulsado el botón derecho (:'); } return false; });
También podríamos hacerlo con:
$('.elemento').contextmenu(function() { // Aquí lanzamos los eventos que queramos return false; });
Si queremos que se produzca en todo el documento (Apuntamos al documento «$(document)«) y no bloquear la acción de bloquear el menu por defecto (quitamos «return false;«):
$(document).bind('contextmenu', function(e) { if (e.which == 3) { alert('Has pulsado el botón derecho (:'); } });
Con las últimas librerías de jQuery también podemos:
$('body').on('contextmenu', '.elemento', function(e){ return false; });