begin process at 2012 05 29 14:47:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Javascript

 > 

Archives

 > 

Divers

 > 

Pb avec event Handler


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb avec event Handler

jeudi 24 février 2005 à 01:31:03 | Pb avec event Handler

jesusonline

Membre Club Administrateur CodeS-SourceS
Bonjour, j'ai un problème avec la declaration d'un de mes events. Plutot qu'un long discours, voici le code qui pose problème.

            function window_onload()
            {
                for (var i=0; i < 11; i++ )
                    document.getElementById("Note").getElementsByTagName("img")[i].onmouseover = function(){Note(i);};
            }

Ensuite lorque je fais passe sur une image, ca me met sur n'importe laquelle de celle ci, la valeur 11, je change la valeur de {Note(i);} par {Note(2);} et ca m'assigne logiquement 2

Cela se produit aussi bien sous IE que sous Firefox, j'ai donc l'impression, que seul la derniere valeur est pris en compte dans mon code pour toutes les images :(

Auriez vous une idée quand à la résolution du problème ?

Merci


Cyril  - http://Hoshimi.CodeS-SourceS.fr
jeudi 24 février 2005 à 02:19:53 | Re : Pb avec event Handler

coucou747

Administrateur CodeS-SourceS
document.getElementById("Note").onmouseover = function(){Note(i);};

mets des id diférents...
ou alors trouves une identification plus pratique...
pe celle là :
document.getElementById("Note").images.onmouseover = function(){Note(i);};

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

[ Lien ]
jeudi 24 février 2005 à 10:17:40 | Re : Pb avec event Handler

jesusonline

Membre Club Administrateur CodeS-SourceS
mes elements sont differents.

document.getElementById("Note").getElementsByTagName("img")[i]

mes elements n'ont pas d'ID, et je prefere ne pas en mettre cette  méthode marche, car je modifie d'autres propriété comme ca. mais je ne comprend pas pourquoi il me change pas ma variable i



Cyril  - http://Hoshimi.CodeS-SourceS.fr
jeudi 24 février 2005 à 10:59:34 | Re : Pb avec event Handler

roro06

Bonjour

J'aimerais bien voir le contexte, car je ne comprend pas ce qu'est "Note"

Cordialement
Roro webDev
jeudi 24 février 2005 à 11:26:04 | Re : Pb avec event Handler

jesusonline

Membre Club Administrateur CodeS-SourceS
Note, on peut dire que c'est
function Note(n)
{
alert(n);
}

Mais voici tout de meme les lignes de code

            function window_onload()
            {
                Note();

                for(var i=0; i < 11; i++)
                {
                            document.getElementById("Note").getElementsByTagName("img")[i].onmouseover = function(){Note(i);};
                // Ne fonctionne pas non plus
                //    with(document.getElementById("Note").getElementsByTagName("img")[i])
                //    {
                //        if(document.attachEvent)// IE 5+
                //        {
                //            attachEvent("onmouseover",function(){Note(i);});
                //            attachEvent("onmouseout",function(){Note();});
                //        }
                //        else if (document.addEventListener)// DOM 2, NS6+
                //        {
                //            addEventListener("mouseover",function(){Note(i);},true);
                //            addEventListener("mouseout",function(){Note();},true);
                //        }
                //    }
                }
            }

Pour ce qui est du HTML :

<body onload="javascript:window_onload()">
    <div id="Note">
        Notes<br />
        <img src="Images/star.gif" alt="0/10" /><img
            src="Images/star.gif" alt="1/10" /><img
            src="Images/star.gif" alt="2/10" /><img
            src="Images/star.gif" alt="3/10" /><img
            src="Images/star.gif" alt="4/10" /><img
            src="Images/star.gif" alt="5/10" /><img
            src="Images/star.gif" alt="6/10" /><img
            src="Images/star.gif" alt="7/10" /><img
            src="Images/star.gif" alt="8/10" /><img
            src="Images/star.gif" alt="9/10" /><img
            src="Images/star.gif" alt="10/10" />
    </div>
</body>

Si je met un onmouseover et onmouseout sur chaque img ca fonctionne, mais je veux quelque chose d'optimisé, il en va pour le bien de tous

Si je fais un onmouseover sur une image, ca m'affiche 11, si je fais un onmouseout, ca m'affiche bien null

mon problème se situe au niveau du 11, j'aurais preferé le bon numéro


Cyril  - http://Hoshimi.CodeS-SourceS.fr
jeudi 24 février 2005 à 12:14:02 | Re : Pb avec event Handler

roro06

Réponse acceptée !



Bonjour

Explication du probleme : ta fonction Note reçoit la valeur de i au moment ou l'évènement se produit. Pour t'en convaincre, après ta boucle for, rajoutes i=555 et testes : ta fonction affichera à chaque fois 555
J'ai déjà m***é sur un problème similaire y'a pas longtemps, voici une solution de remplacement :

function Nn(evt)

{
 var obj=null;
 obj=(document.all)?window.event.srcElement:evt.target;

 alert(obj.alt);
}


            function window_onload()
            {
                //Nn();

                for(var i=0; i < 11; i++)
                {
                 document.getElementById("Note").getElementsByTagName("img")[i].onmouseover = Nn ;
                }
            }

//-->
</SCRIPT>
Pour ce qui est du HTML :

<body onload="javascript:window_onload()">
    <div id="Note">
        Notes<br />
        <img src="Images/star.gif" alt="0" /> <img
            src="Images/star.gif" alt="1" /> <img
            src="Images/star.gif" alt="2" /> <img
            src="Images/star.gif" alt="3" /> <img
            src="Images/star.gif" alt="4" /> <img
            src="Images/star.gif" alt="5" /> <img
            src="Images/star.gif" alt="6" /> <img
            src="Images/star.gif" alt="7" /> <img
            src="Images/star.gif" alt="8" /> <img
            src="Images/star.gif" alt="9" /> <img
            src="Images/star.gif" alt="10" />
    </div>
</body>
</BODY>
</HTML>

( J'ai renommé la fonction Note car il y à déjà un div appelé ainsi, question de "convenance personnelle")

Cordialement
Roro webDev

jeudi 24 février 2005 à 12:42:05 | Re : Pb avec event Handler

coucou747

Administrateur CodeS-SourceS
déja name n'existe pas en théorie...

ensuite, le name n'est pas un element de l'id...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

[ Lien ]
jeudi 24 février 2005 à 13:57:06 | Re : Pb avec event Handler

jesusonline

Membre Club Administrateur CodeS-SourceS
Pour répondre à coucou747

Je sais que la propriété name n'existe pas, je pense que tu me parles de ca, car j'utilise la fonction getelementbytagname cette fonction retourne un tableau qui contient toutes mes images de la div Note

Et la fonction est une fonction du DOM : http://fr.selfhtml.org/javascript/objets/document.htm#get_elements_by_tag_name

Pour roro06, j'avais pas vu ca comme ca je comprend la solution de remplacement, mais j'aurais preferé trouver mieux :-/  car pour la description c'est pas ce qu'il y a de mieux, j'aurais preferé être un peu plus "libre"

mais je vais me contenter de cette solution, ou sinon je vais peut etre essayé en faisant un
<img src="star.gif#9" alt="description de la note 9 sur 10" />

En tout cas merci à toi, de m'avoir expliqué d'ou venait le problème


Cyril  - http://Hoshimi.CodeS-SourceS.fr
jeudi 24 février 2005 à 14:04:33 | Re : Pb avec event Handler

jesusonline

Membre Club Administrateur CodeS-SourceS
Finalement il veut pas avec un star.gif#9 mais accepte un star.gif?9

Je suis pas tres tres doué en JS, tu peux m'expliquer ca ?

 var obj=null;
 obj=(document.all)?window.event.srcElement:evt.target;

je sais qu'il y a un if, mais je comprend pas le pourqoi de la chose

c'est bien ca ?
var s = condition?restultrue:resultfalse;

En relisant, ca voudrais dire qeu si document.all est true alors obj = window.event.srcElement sinon obj = evt.target ?

ca sert pour la compatibilité ? Il me faut que ce que je fasse soit compatible pour tout les navigateurs comme ca c'est bon ?




Cyril  - http://Hoshimi.CodeS-SourceS.fr
jeudi 24 février 2005 à 14:10:42 | Re : Pb avec event Handler

chimelpremier

Réponse acceptée !

essaie ça :

<html>
<head>
<script type="text/javascript">
function window_onload()
{
for(var i=0; i < 11; i++)
  {
  document.getElementById("Note").innerHTML+='<img src="Images/star.gif" alt="'+i+'/10" onmouseover="alert('+i+')" />'
  }
}

window.onload=window_onload
</script>
</head>
<body>
<div id="Note">
</div>
</body>
</html>


1 2

Cette discussion est classée dans : problème, pb, valeur, note, event


Répondre à ce message

Sujets en rapport avec ce message

Pb avec mon script de contrôle !! [ par seb3110 ] Salut ! Voilà, je débute en javascript, et j'ai un petit problème avec mon script qui me permet de contrôler les caractères saisis par l'utilisateur d PB Liste déroulante [ par iomega ] Bonjour à tous je voudrai savoir si quelqu'un pourrait m'aider à résoudre ce problème!!j'ai une liste déroulante qui est remplie d'après une table mys Problème JS: Gérer une listbox et traiter les valeur avec PHP... [ par Rabba ] J'ai une page dont le but est de pouvoir insérer des mots-clefs dans une listbox avec du javascript et ensuite, lors de la validation du formulaire, d Verifier une valeur du combobox [ par chris81 ] bonjour,j'ai un petit pb, je souhaite verifier si dans mon combobox quelque chose a ete choisi. Si rien n'est choisi le combobox reste vide,j'ai creer PB DE CODE (musique) AIDEZ-MOI !! [ par manetfx ] Bonjour, Je voudrai utiliser un code pour mettre de la musique sur mon site (l'adresse du script : http://www.javascriptfr.com/code.aspx?ID=25203) Le Pb Input:Text et touche Enter [ par PascalLF ] Salut,J'ai un formulaire avec un Champ de saisie et des boutons.Lorsque je clique sur un des boutons je récupère la valeur du champ de ssaisie et la v Sélection de texte dans un champ [ par Leoflo ] Bonjour! Mon pb est simple, j'ai fait un formulaire et j'aimerais qu'en cas de champ mal rempli, un message s'affiche (là pas de pb j'ai le bon code) Problème pour attribuer une valeur dynamique a un champ inpute sur évènement [ par GoldPegasus ] dans mon code j'ai un champ impute de type hidden. ce que je veux c'est que en cliquant sur une image ce champs soit mise a jour par un code javascrip mon pb n'a pas de valeur [ par nahzhir ] Bonjour Sur mon site en asp, j'ai une erreur dont je ne trouve pas la reponse : document.getElementbyId(...) a une valeur null ce qui ce réfere à l pb de frames [ par David_monchy ] bonjour, j'ai le meme problème que ce topic: http://www.javascriptfr.com/infomsg/LIEN-FRAME_171132.aspx à savoir, j'ai une 1ere page qui est déompoosé


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 9,001 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales