2009-12-31 5 views
0

Je me retrouve à apprendre web development. Et je viens de commencer à lire sur javascript. En tant que langue, je n'ai aucun problème avec ça, mais je rencontre une situation ennuyeuse:Échange d'images en utilisant javascript

J'allais juste essayer mon premier javascript pour une action simple: changer l'attribut src d'un <img>. Alors imaginons que j'ai ce code dans index.html:

<html> 
    <head> 
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 

    <script type="text/javascript" language="javascript" charset="utf-8"> 
     function activate(id) 
     { 
     document.images(id).src ="home-on.jpg"; 
     } 

     function deactivate(id) 
     { 
     document.images(id).src ="home-off.jpg"; 
     } 
    </script> 
    </head> 

    <body id="ID"> 
    <img id="home" src="home-off.jpg" 
    onmouseover="activate('home')" 
    onmouseout="deactivate('home')"/> 
    </body> 
</html> 

Le code fonctionne parfaitement sur google chrome (permutant l'image lorsque la souris est terminée, et à l'extérieur). Mais je n'ai pas de chance avec Firefox. De l'aide? Conseil?

+0

conseil: utilisez css pour exécuter cette fonction :) – Jason

Répondre

6

Vous utilisez la mauvaise syntaxe pour obtenir les images.

Vous devez écrire document.images[id] (avec crochets [], pas de parenthèses ())

La collection document.images est un tableau associatif, qui est indexé en utilisant les supports.
Les parenthèses sont utilisées pour appeler une fonction; Je ne sais pas pourquoi votre code a fonctionné dans Chrome.

+3

Oui, et il peut également envisager d'utiliser document.getElementById (id) également. –

+0

Eh bien merci. Je n'étais pas au courant que document.iamges était un tableau, en fait je pensais que c'était une fonction! . Et oui, je suis un programmeur donc je sais comment les fonctions sont habituellement invoquées. – Fabzter

+0

Vous seriez surpris par le niveau moyen de certains des débutants ici. Aussi, si vous veniez de VB, la distinction aurait été nouvelle pour vous. – SLaks

1

SLaks a entré la bonne réponse pour cette question particulière.

Cependant, vous trouverez en JavaScript qu'il y a beaucoup de cas comme celui-ci où la syntaxe incorrecte fonctionnera dans un navigateur mais pas dans le suivant. Pour vous assurer que vous maintenez une compatibilité croisée avec JavaScript, vous pourriez trouver une bibliothèque comme jQuery très pratique. Non seulement il essaie de s'assurer que votre code JavaScript est compatible avec tous les navigateurs, mais il offre également de nombreuses fonctionnalités.

+0

Toi, je pensais déjà à utiliser jQuery, mais je voulais partir du sol avant d'entrer dans les frameworks. :-) – Fabzter