Simple question en Javascript

Résolu/Fermé
flashdumpf - 3 juin 2009 à 11:01
flashdumpf Messages postés 17 Date d'inscription lundi 5 janvier 2009 Statut Membre Dernière intervention 14 mai 2010 - 4 juin 2009 à 23:20
Bonjour,

je suis débutant en Javascript et j'essaye d'assigner un évènement à une DIV (voire code ci-dessous)... Seulement la fonction action() se déclenche même quand je ne clique pas sur la DIV! J'aimerai comprendre pourquoi, merci

PS. Je cherche à ne pas avoir le onclick dans la DIV

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Index</title>

<style type="text/css">
#tab{
	background:#cc0000;
	cursor:pointer;
}
</style>

<script type="text/javascript">
	function action(){
		alert("Wooooo");
	}

	function create(id){	
		element=document.getElementById(id);	
		element.onclick = action();
	}
</script>

</head>
<body onload="new create('tab')">
<div id="tab">Test</div>
</body>
</html>
A voir également:

5 réponses

Ozimandias Messages postés 502 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
4 juin 2009 à 12:35
Voila la reponse, il faut ajouter un gestyionnaire d'evenement sur ta balise....


<script type="text/javascript">
	function action(){
		alert("Wooooo");
	}

	function create(id){	
		element=document.getElementById(id);
			if (element.addEventListener)	{  // si mozilla
			element.addEventListener( "click", action, false );
			}else{element.attachEvent("onClick", action );} // sinon IE
	}
</script>
1
flashdumpf Messages postés 17 Date d'inscription lundi 5 janvier 2009 Statut Membre Dernière intervention 14 mai 2010 1
4 juin 2009 à 23:20
J'ai trouver la solution, fallait juste enlever les parenthèses quand j'appelle la fonction action()...

function create(id){
element=document.getElementById(id);
element.onclick = action;
}
1
sougo Messages postés 38 Date d'inscription vendredi 29 mai 2009 Statut Membre Dernière intervention 26 juin 2009 4
3 juin 2009 à 11:18
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Index</title>

<style type="text/css">
#tab{
background:#cc0000;
cursor:pointer;
}
</style>

<script type="text/javascript">


function create(id){
element=document.getElementById(id);
element.onclick = action();
}

</script>

</head>
<body onload="new create('tab')">
<!---Change ton code ici et sa devrai marcher ---->
<div id="tab"><a href="javascript:alert('woooooooo!!');">Test</a></div>

</body>
</html>
0
flashdumpf Messages postés 17 Date d'inscription lundi 5 janvier 2009 Statut Membre Dernière intervention 14 mai 2010 1
3 juin 2009 à 11:36
Oui, je sais que ça marche également ainsi... Mais c'est pas ce que je cherche, je sais que ça fonctionne en attribuant l'évènement directement dans le code javascript, j'aimerai savoir comment et quels sont mes erreurs?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sougo Messages postés 38 Date d'inscription vendredi 29 mai 2009 Statut Membre Dernière intervention 26 juin 2009 4
4 juin 2009 à 12:05
Je pense l'erreur provient de tes fonctions l'impression en faite que tu définit directement ton lien comme étant cliquer des l'apparition de la page.

Pourquoi? Comment faire?

A vrai dire aucune idée pour le moment je débute en programmation et le java script est pas mon fort .

De plus je suis un peu occuper ces temps ci mais je me pose sur ton problème des que possible.
0