2010-03-09 7 views
2

J'essaie d'obtenir le code d'un événement en utilisant l'événement .quand la fonction jQuery. Cela fonctionne très bien en FF, mais en IE8 je ne suis que "indéfini". Y at-il une raison pour que cela ne fonctionne pas dans IE8? J'utilise jQuery version 1.3.2 et le code est ci-dessous (simplifié).Événement jQuery.qui ne fonctionne pas dans IE

function handleInput(event) { 
    //Get the character code of the pressed button 
    keycode = event.which; 
} 

Merci, Metropolis

** ÉDITÉE **

Au fond ce que je veux être en mesure de faire est d'avoir un élément HTML avec un attribut événement onkeyup qui fera appel à la fonction handleInput . Voici ce que je veux que le HTML ressemble. Y at-il un moyen de passer un "événement" comme celui-ci et jQuery le reconnaît-il?

Répondre

2

jQuery prend en charge event.which. Comment liez-vous exactement votre gestionnaire? Utilisez-vous jQuery? Si vous faites:

jQuery("#element").click(function(evt) { 
//evt is a jQuery-normalized event object 

}); 

Cela devrait fonctionner. Vous ne voulez probablement pas utiliser event (notez que je passe en evt par rapport à event) comme paramètre car il va entrer en collision avec l'objet event d'IE. Je crois que c'est la source de votre problème.

EDIT

Après avoir lu votre commentaire, vous devez faire quelque chose comme ça dans un fichier Javascript que vous faites référence à partir <HEAD>:

jQuery(document).ready(function() { 
    //event-handling binding-code 
}); 
+0

Merci pour la réponse Vivin. En ce moment j'appelle cette fonction d'un élément de HTML et en passant "l'événement". Y a-t-il un moyen de passer dans un événement comme celui-ci et est-ce que jQuery le reconnaît? Je ne saurai pas toujours à quel élément je l'attache car c'est dynamique. – Metropolis

+0

Que voulez-vous dire quand vous dites que l'élément est dynamique? –

+0

Eh bien, je l'utilise dans une bibliothèque, donc je vais utiliser cette fonction dans de nombreux endroits différents. Je ne voulais pas vraiment ajouter jQuery ("# ​​element") .cliquez dans un fichier javascript sur chaque projet dans lequel j'utilise ceci. J'espérais pouvoir le garder en ligne avec un élément HTML comme ci-dessus. – Metropolis

-1

Ces avant les gars ignorent les faits, voir Je ne suis pas sûr de ce que je fais différent, mais mon logiciel d'entreprise utilise e.qui est fou et fonctionne parfaitement bien dans IE 7-9

voir travailler fiddle here

+0

aussi, essayez d'utiliser '.browser' $ pour déterminer le type de navigateur, ' if ($ .browser.safari) {// \t \t ne fonctionnent } else if ($. browser.mozilla) {// \t \t ne fonctionnent } else if ($ .browser.msie) {// \t \t ne fonctionnent } ' – SpYk3HH

+1

Oui je sais. Cela fait longtemps que j'ai regardé ce problème, mais cela ne semble plus être un problème de toute évidence. Je n'ai aucune idée de ce que j'ai fait, et je ne sais pas pourquoi j'ai accepté la réponse ci-dessus. Mais j'ai dû avoir une bonne raison pour cela. Je ne préconise pas l'utilisation de $ .browser. Je suis assez sûr que c'est aussi déprécié. – Metropolis

0

J'ai eu la même expérience dans IE9. Il peut être corrigé en utilisant mousedown ou mouseup plutôt que click.

Questions connexes