jQuery: preventDefault() ne fonctionne pas sur l'entrée/cliquez sur les événements?

Je veux désactiver par défaut contextMenu lorsqu'un utilisateur clique avec le bouton droit sur un champ de saisie, de sorte que je peux montrer une coutume contextMenu. Généralement parlant, c'est assez facile à désactiver le menu contextuel en faisant quelque chose comme:

$([whatever]).bind("click", function(e) { e.preventDefault(); });

Et en fait, je peux le faire sur à peu près tous les éléments, SAUF pour les champs de saisie dans FF - ce que quelqu'un sait pourquoi ou pourrait me diriger vers de la documentation?

Voici le code, je travaille avec, merci les gars.

HTML:

<script type="text/javascript">
 var r = new RightClickTool();
</script>

<div id="main">
  <input type="text" class="listen rightClick" value="0" />  
</div>

JS:

function RightClickTool(){

var _this = this;
var _items = ".rightClick";

$(document).ready(function() { _this.init(); });

this.init = function() {
 _this.setListeners(); 
}

this.setListeners = function() {
 $(_items).click(function(e) {
  var webKit = !$.browser.msie && e.button == 0;
  var ie = $.browser.msie && e.button == 1;

  if(webKit||ie)
  { 

   //Left mouse...do something()

  } else if(e.button == 2) {
   e.preventDefault(); 

   //Right mouse...do something else();
  }

 });
}

} //Ends Class

EDIT:

Désolé, après avoir lu les commentaires je me rends compte que je me dois de préciser un peu les choses.

1) Le code ci-dessus fonctionne...dans un sens. Le code est capable de trier par quel bouton a été cliqué, il n'a tout simplement pas de soins que je dis.e.preventDefault() et le menu clic-droit encore pop up. En d'autres termes, si vous mettez une alerte sur l'e.bouton vous souhaitez obtenir votre 1 ou 0 pour la gauche et 2 pour la droite...mais il vient de se rit de moi et me montre encore les damnés de menu par défaut!

2) Si je mets le sélecteur jQuery sur un autre élément (autres que les entrées), alors tout va fonctionner, FF respecter le preventDefault() de l'appel et de la droite par défaut-cliquez sur le menu ne s'affichera pas.

qu'en est juste return false?
Aussi, essayez de e.which au lieu de e.button.
Pourrait être lié stackoverflow.com/questions/1489817/...

OriginalL'auteur Jason | 2010-04-29