Page 1 sur 1

Element non reconnu avec les events

Posté : 30 déc. 2009, 01:21
par hi-logik
Bonjour,

Je me suis mis à tester les évènements avec javascript mais cela ne fonctionne pas correctement et
cela viens des éléments visiblement.

Mon code javascript est dans un fichier JS qui est appellé dans le header de la page

Ma fonction qui gère Microsoft

Code : Tout sélectionner

function $(id) { return document.getElementById(id); } function addEvent(obj,event,fct) { if(obj.attachEvent) { obj.attachEvent('on' + event,fct); } else { obj.addEventListener(event,fct,true); } } function act() { alert('Hello World'); } var divElement = $('toto'); addEvent(divElement, 'click', act);
Quand je met juste document à la place de divElement cela fonctionne mais pas sans ça...
et quand je met document ça fonctionne bien sur IE et FF.


J'ai créer un div classique de ce genre qui possède une large taille que j'ai paramétré avec le css

Code : Tout sélectionner

<div id="toto">Hello World</toto>
Et j'ai testé le fais d'ajouter le addEvent dans la page HTML et la ça fonctionne !
n'y a t-il pas moyen d'appeler cette évènement directement depuis le fichier JS ?


Merci ^^

Re: Element non reconnu avec les events

Posté : 30 déc. 2009, 01:26
par stealth35
tu fais bien ton attachevent apres que le html soit chargé ?

Re: Element non reconnu avec les events

Posté : 30 déc. 2009, 01:28
par hi-logik
Euh...Quel attachement ? je vois pas c'est quoi ?

Re: Element non reconnu avec les events

Posté : 30 déc. 2009, 01:37
par stealth35
attachEvent, ta fonction addEvent, tu l'apelle bien apres ta div ?

Re: Element non reconnu avec les events

Posté : 30 déc. 2009, 01:40
par hi-logik
Alors au début je l'appelais avant le div directement dans le fichier JS et
maintenant je l'appel après la div et cela fonctionne !

Mais ne peut on pas le laisser dans le fichier JS et vérifier si la page est bien charger avant ?

Merci pour ton aide.

Re: Element non reconnu avec les events

Posté : 30 déc. 2009, 01:48
par stealth35
ouai, tu peu gardé ton script en debut de page, par contre faut creer un fonction pour ca. c'est avec
window.onload je crois, mais faut faire un test pour moz ou ie, je te retourve ca

Re: Element non reconnu avec les events

Posté : 30 déc. 2009, 01:53
par stealth35

Code : Tout sélectionner

if (window.addEventListener){ window.addEventListener("load", addOnLoad); }else if((window.attachEvent) window.attachEvent("onload", addOnLoad); }

Re: Element non reconnu avec les events

Posté : 30 déc. 2009, 01:59
par hi-logik
ok je te remercie !

par contre je le met ou ?
dans une fonction ou bien dans le fichier JS au début ?

Je sais pas pourquoi j'ai trop souvent se problème chez moi !
Je me suis basé sur ce tutoriel et quand je matte son code source y a pas de onload et le code est placé au dessus.
Mais je sais pas si ça viens de chez moi ou si c'est pour touts le monde.


http://www.siteduzero.com/tutoriel-3-13 ... ouris.html

Re: Element non reconnu avec les events

Posté : 30 déc. 2009, 02:08
par stealth35
tu met ca en premier dans ton script, ensuite tu pourras faire

Code : Tout sélectionner

var addOnLoad = function(event) { var divElement = $('toto'); addEvent(divElement, 'click', act); }
et ducoup meme avec ta fonction addEvent

t'aurai pou direct faire en debut de script

Code : Tout sélectionner

addEvent(window, 'load', addOnLoad);

Re: Element non reconnu avec les events

Posté : 30 déc. 2009, 02:16
par hi-logik
ok Maintenant cela fonctionne !

J'ai fais comme suis :

Code : Tout sélectionner

function addEvent(obj,event,fct) { if(obj.attachEvent) { obj.attachEvent('on' + event,fct); } else { obj.addEventListener(event,fct,true); } }
ensuite les fonctions dont j'ai besoins puis

Code : Tout sélectionner

var addOnLoad = function(event) { var div = $('toto'); addEvent(div, 'click', act); };
Et à la fin de mon script JS je place ceci

Code : Tout sélectionner

addEvent(window, 'load', addOnLoad);
et c'est bon !

Ce qui veux dire que tout les évènements qu'éventuellement je voudrais qu'il soit chargé je peux les mettre dans la function :

var addOnLoad = function(event) { ici tout mes lancement }

Re: Element non reconnu avec les events

Posté : 30 déc. 2009, 02:26
par stealth35
fais un alert dans le addOnLoad pour voir si ca se lance

Re: Element non reconnu avec les events

Posté : 30 déc. 2009, 02:28
par hi-logik
lol excuse moi j'etait un peu en décalage avec toi :D

regarde le message de dessus !

ça marche maintenant mais tu me dire si j'ai bien fais ou pas ?

D'ailleurs je vois que je peux rajouter d'autre évènement par exemple :

Code : Tout sélectionner

addEvent(window, 'load', addOnLoad); // qui reprend celle de base addEvent(window, 'load', autreAction); // et la je peux ajouter un autre évènement à chargé au cas ou
Merci pour ton aide...j'attends ton avis avant de mettre résolu.

Re: Element non reconnu avec les events

Posté : 30 déc. 2009, 02:39
par stealth35
non tu met tout dans ta fonction addOnload

Re: Element non reconnu avec les events

Posté : 30 déc. 2009, 02:41
par hi-logik
ok merci pour l'info, Je prend note !


Good night :)