2009-09-20 19 views
18

Inhabilité correctamente el evento de clic derecho en la página en la que estoy trabajando usando jquery. Quiero crear un menú personalizado de clic derecho. ¿Cómo puedo hacer esto? ¿Necesita esto una configuración de CSS relevante para que funcione (es decir, "posición")?cómo escribir su propio menú de clic derecho y desactivar el valor predeterminado usando jquery/javascript

+0

Te recomiendo que no hagas esto, a menos que le des al usuario la opción de apagarlo, es molesto y rompe la forma "web" de hacer las cosas. Por ejemplo, si un usuario desea guardar una imagen de su sitio web, no podrá hacerlo fácilmente (aún puede hacerlo, solo tiene que pasar por los aros). – Chii

+7

No hay problema, ya que lo estoy usando para una aplicación para un grupo en una intranet. – kratz

Respuesta

3

Este ejemplo funciona, aunque es cursi. Lo que podría hacer en su controlador de menú contextual es mostrar un DIV en una ubicación específica en la pantalla con los elementos que elija. Hasta donde yo sé, no hay forma de personalizar los elementos dentro del menú contextual que aparece cuando haces clic con el botón derecho en los elementos.

<html> 
    <head> 
    <title>Context menu test</title> 
    <style type="text/css"> 
     .element { 
     background-color: blue; 
     height: 300px; 
     width: 300px; 
     } 

     .popup { 
     background-color: red; 
     border: 1px solid black; 
     width: 100px; 
     height: 100px; 
     position: absolute; 
     } 
    </style> 
    <script type="text/javascript" src="jquery.js"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $(".element").contextmenu 
      (
      function(e) { 
       $("div.popup").remove(); 
       $("<div class='popup'>Hi</div>").appendTo("body") 
       .css("left", e.pageX) 
       .css("top", e.pageY) 
       .show(); 
       e.preventDefault(); // return false; also works 
      } 
     ); 
     } 
    ); 

     $.fn.contextmenu = function(func) { 
     return this.bind("contextmenu", func); 
     } 
    </script> 
    </head> 
    <body> 
    <div class="element"></div> 
    </body> 
</html> 
Cuestiones relacionadas