IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

code simple (évenements)


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 64
    Points
    64
    Par défaut code simple (évenements)
    Salut !

    Je débute en Javascript et je souhaite avoir un code qui affiche une boîte de dialogue lorsque je passe la souris sur un lien. J'ai donc écrit ce script, qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    (function () {
    	var liens = document.getElementsByTagName("a");
    	for(var i=0; i < liens.length; i++)
    	{
    		liens.onmouseover = function(){alert("a");};
    	}
    })();
    Le script est chargé dans la balise "body" de la page avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="JavaScript/nom_du_script.js"></script>
    Pourtant, rien de compliqué...

    Merci d'avance !

    PS : cet exemple n'a aucun interêt, mais ce que je veux faire en réalité est bien plus complexe, mais ne fonctionnait pas. J'ai donc simplifié au maximum avec le code ci-dessus.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 662
    Points
    66 662
    Billets dans le blog
    1
    Par défaut
    Petits soucis de synatxe:
    faut lui donner un nom à ta fonction ... et puis y'a des parenthèses en trop ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function HoverLinks () {
    	var liens = document.getElementsByTagName("a");
    	for(var i=0; i < liens.length; i++)
    	{
    		liens[i].onmouseover = function(){alert("a");};
    	}
    };
    et ne pas oublier de la lancer dans le onlaod du body ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload='HoverLinks()' >
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre régulier Avatar de LexWizard
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 101
    Points : 119
    Points
    119
    Par défaut
    Salut,
    Il te manque "[i]" dans ta boucle for :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function () {
    	var liens = document.getElementsByTagName("a");
    	for(var i=0; i < liens.length; i++)
    	{
    		liens[i].onmouseover = function(){alert("a");};
    	}
    }
    ça devrait fonctionner

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 662
    Points
    66 662
    Billets dans le blog
    1
    Par défaut
    seul l'ajout du i ne suffit pas car tu rencontrerais un problème d'insatnciation. Il faut lancer la fonction soit en fin de page àprès fermeture de la balise body (ce qui n'est pas très orthodoxe, soit dans le onload.

    Mais en effet j'avais raté le i
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre régulier Avatar de LexWizard
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 101
    Points : 119
    Points
    119
    Par défaut
    bah...on sait pas ce qu'il y a avant toutes ces parenthèses...
    Mais c'est vrai que si il n'y a rien avant, et que donc il s'agit d'une erreur de synthaxe, il manque le nom de la fonction.

  6. #6
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 64
    Points
    64
    Par défaut
    Alors...

    Pour le nom de la fonction, il s'agit tout simplement du système de fonctions anonymes de JavaScript, et c'est sensé être correct si on l'appel tout de suite, avec les parenthèses bizarres (tirées d'un exemple de "Javascript : La référence" ...).

    Pour le [i], c'est un oubli lorsque j'ai recopié le code...

    Mais mon problème était en effet l'éxecution du code avant que la page soit chargée. Le code ne trouvait pas les balises, puiqu'elles n'existaient pas encore !

    J'ai donc mis un gestionnaire onload dans la balise body, mais... maintenant mon JavaScript est intrusif, et ça je veux pas...

    Comment puis-je le rendre non-intrusif ?

Discussions similaires

  1. Code simple interprété différemment par IE et Firefox
    Par marzuc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 30/10/2007, 22h31
  2. Code Simple : Utiliser Excel sous VB ?
    Par fabiofabio dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/08/2007, 13h00
  3. probleme de code simple
    Par BFH dans le forum C
    Réponses: 18
    Dernier message: 28/10/2005, 18h57
  4. Explication de code simple
    Par Clad3 dans le forum OpenGL
    Réponses: 3
    Dernier message: 20/03/2005, 11h31
  5. Réponses: 2
    Dernier message: 08/04/2004, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo