Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Pb avec event Handler [ Archives / Divers ] (jesusonline)

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

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

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é 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

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.