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