2010-09-17 6 views
3

Je pensais avoir compris JQuery, évidemment pas. Pourquoi, dans cet exemple, la première zone de texte enregistre-t-elle des clics mais pas la seconde?Pourquoi mon jQuery ne lie-t-il pas mon événement?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4 

/strict.dtd"> 
<html> 
<head> 
<script type="text/javascript" src="jquery-1.4.2.min"/> 
<script type="text/javascript"> 

    captureKeys = function(event) 
    { 
    alert("foo"); 
    } 
    $(document).ready(function() 
      { 
     $('#UsingJQuery').bind('keyup', function(){alert('bar');}); 
      }); 

</script> 
</head> 
<body id="contentText" > 
    <input type="text" id="UsingPlainJavaScript" onkeyup="captureKeys()"/> 
    <input type="text" id="UsingJQuery"/> 

</body> 
</html> 

EDIT: OK, j'ai corrigé la faute de frappe mais il ne fonctionne toujours pas ..

+1

pourrait-il que votre sélecteur en Javascript ('usingJQuery') ne correspond pas à l'ID de l'étiquette d'entrée ('UsingJQuery')? Je crois que l'attribut 'id' est sensible à la casse. – Kevin

+0

Merci à tous, c'est incroyable (avec le recul) comment je peux manquer des erreurs aussi évidentes! –

Répondre

4

C'est d'avoir des ennuis:

<script type="text/javascript" src="jquery-1.4.2.min"/> 

Vous avez besoin d'un </script> d'avoir un balisage valide

<script type="text/javascript" src="jquery-1.4.2.min"></script> 

C'est un grand NoNo et pourrait être la raison de votre problème. Une autre chose est, il n'y a pas .js dans votre nom de fichier? Assurez-vous que votre jQuery lib a le bon nom aussi.

Référence: http://www.w3.org/TR/xhtml1/#C_3

+0

+1 pour un super endroit! – lnrbob

3

Parce que l'ID du second élément d'entrée est UsingJQuery (capitale U), non usingJQuery.

$('#UsingJQuery').bind('keyup', function(){alert('bar');}); 

devrait le faire.

Mise à jour:

L'erreur doit être quelque part ailleurs, votre code est correct. Voir: http://jsfiddle.net/H2xye/

Peut-être que vous ne comprenaient pas correctement jQuery:

src="jquery-1.4.2.min.js" 

vous manque .js à la fin du chemin. Au moins, c'est le nom standard, peut-être que vous l'avez renommé.
La console d'erreur devrait vous en dire plus.

Mise à jour 2: Voir la réponse de jAndy concernant la balise </script>. C'est probablement l'autre problème!

1

S'il vous plaît changer de

<script type="text/javascript" src="jquery-1.4.2.min"/>

à

<script type="text/javascript" src="jquery-1.4.2.min.js"/>

Questions connexes