2009-09-20 5 views
18

J'ai réussi à désactiver l'événement clic droit sur la page que je travaille sur l'utilisation de jquery. Je veux créer un menu de clic droit personnalisé. Comment puis-je faire ceci? Est-ce que cela nécessite un réglage CSS approprié pour le faire fonctionner (c'est-à-dire "position")?comment écrire votre propre clic droit menu et désactiver la valeur par défaut en utilisant jquery/javascript

+0

Je vous recommande de ne pas le faire, sauf si vous donnez à l'utilisateur la possibilité de l'éteindre - c'est agaçant, et rompt la façon de faire les choses. Par exemple, si un utilisateur voulait enregistrer une image de votre site Web, il ne pourrait pas le faire facilement (il peut toujours le faire, il suffit de passer par des cerceaux). – Chii

+7

Pas un problème puisque je l'utilise pour une application pour un groupe sur un intranet. – kratz

Répondre

3

Cet exemple fonctionne, mais il est ringard. Ce que vous pourriez faire dans votre gestionnaire de menu contextuel est d'afficher un DIV à un emplacement spécifique sur l'écran avec les éléments de votre choix. Pour autant que je sache, il n'y a aucun moyen de personnaliser les éléments dans le menu contextuel qui s'affiche lorsque vous cliquez avec le bouton droit sur les éléments.

<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> 
Questions connexes