obtenir parentNode de cliqué sur l'élément dans la plaine du JS
J'ai besoin d'obtenir le parentNode d'un élément cliqué dans la plaine du JS (pas de jQuery ou autres cadres)
Je suis actuellement en utilisant document.getElementById("item_click")
mais je veux changer id="item_click"
à class="item_click"
donc je peux l'utiliser plusieurs boîtes.
Je ne sais pas comment intégrer this
dans le script
Voici un Violon <<< jouer avec elle
HTML
<div class="item">
<div class="item-tester" >
<div class="item-icon"></div>
<div class="item-title">Item Title</div>
</div>
<div id="item_click" onmousedown="new_class(event)" onmouseup="revert_class(event)" onmouseout="revert_class(event)"></div>
</div>
JS
function new_class(event) {
wClick = document.getElementById("item_click");
wTile = wClick.parentNode;
wTile.className = wTile.className + " added-class";
}
function revert_class(event) {
wTile.className = "item";
}
Je veux changer
wClick = document.getElementById("item_click");
wTile = wClick.parentNode;
à quelque chose comme
wClick = this;
wTile = wClick.parentNode;
Je sais comment le faire en jQuery, mais il ne fonctionne pas dans la plaine JS comme this
serait le window
(je pense)
BTW.
J'ai besoin de l' (cas) car c'est juste un stripdown de l'ensemble du code que j'utilise.
OriginalL'auteur | 2012-02-12
Vous devez vous connecter pour publier un commentaire.
Vous devez être conscient que, même s'il va travailler pour votre exemple, si vous avez et que vous cliquez sur un élément imbriqué à l'intérieur de la
div
avec le gestionnaire, il va arrêter de travailler parce queevent.target
est toujours le plus profondément imbriqués élément qui a reçu l'événement.OriginalL'auteur Troy Watt
Utilisation
.call()
pour appeler le gestionnaire pour définir sonthis
valeur à l'élément qui a le gestionnaire...J'ai essayé votre exemple. Mais dans mon cas précis l'autre réponse, fonctionne parfaitement. Comme je l'ai dit. le code est juste une petite partie de l'ensemble du script et j'ai rencontré des problèmes avec votre solution. Merci pour le Violon. Je vais essayer de autour de et de reconsidérer ma coche si je l'obtenir pour travailler dans une meilleure façon. +1 pour le violon
OriginalL'auteur
Vous pouvez simplement utiliser
event.target.parentNode
(N'ont même pas besoin de passer leevent
dans la fonction):OriginalL'auteur A-Sharabiani