11496 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

quelqu'un peut il expliquer ceci?

dans un code js avec des vrais morceaux de jQuery dedans, je vérifie des éléments à l'aide de la console.
J'ai mis un écouteur on() sur un div#resultats.

si je tape console.log(ev.currentTarget);
j'obtiens <div id="resultats"> , et je suis content Smiley smile


maintenant si je tape console.log('currentTarget is '+ ev.currentTarget);
j'obtiens currentTarget is [object HTMLDivElement]

alors que je me serais attendu à avoir currentTarget is <div id="resultats">

(la même chose se produit avec ev.target


$('#page').on('click', '#resultats', function(ev){
	console.log('currentTarget is '+ ev.currentTarget);
	console.log(ev.currentTarget);
	console.log('--------');
	console.log('target is '+ ev.target);
	console.log(ev.target);
});



(edit: le code html)


<div id="page">
    <div class="bloc_page">
		<div id="resultats">
                 <img src="images/6.png" width="128" height="128" />
                </div>    
    </div>
</div>


Modifié par lionel_css3 (02 Dec 2013 - 17:05)
Bonjour,

(à moins que je me trompe)

le passage en chaine de charactère de ton objet ev.target se traduit par [object HTMLDivElement].

ev.target et ev.currentTarget te donne le même résultat ? si tu fais un ev.currentTarget === ev.target dans la console tu obtiens true ?

si tu veux currentTarget is <div id="resultats"> essaye de faire un ev.currentTarget.innerHTML
@ Javascripteur , merci à toi

le problème ne se situe pas entre target et currentTarget.

ev.currentTarget.innerHTML renvoie undefined dans la console....
C'est plutôt le "nom de l'instance" ou du constructeur qui est renvoyé lorsque tu fais une concaténation (genre un truc entre e.currentTarget.constructor.toString() et e.currentTarget.constructor.name)...

tm