Je viens de démarrer avec JQuery et j'ai besoin de changer la classe css de deux éléments et de supprimer leurs gestionnaires d'événements onclick.JQuery sélectionne les enfants en fonction de plusieurs classes de l'élément parent
Lorsque l'un des trois éléments de la div avec class upDown est cliqué, une fenêtre contextuelle apparaît. Quand on clique sur un bouton de cette fenêtre, vote_click() est appelé.
Je dois désactiver les éléments avec des classes "up" et "down", mais pas d'autres.
<div class="upDown">
<div class="up" id="ctl04_btnUp" onclick="lastClick=this;" ></div>
<div class="com" id="ctl04_btnCom" onclick="lastClick=this;"></div>
<div class="down" id="ctl04_btnDown" onclick="lastClick=this;"></div>
</div>
Voici ma tentative
var lastClick; //will be set to either the "up" or "down"
function vote_click() {
if (lastClick && lastClick.className != "com") {
$("#"+lastClick.parentElement.id + " > .up .down").each(
function(index, e) {
alert('disabled ' + this.id);
this.onclick = null;
this.className += '-ya';
}
);
lastClick = null;
}
}
J'ai clairement aucune idée de ce que je fais donc des observations générales au sujet de mon approche serait appréciée.
Juste vu votre édition. Merci pour l'explication. J'ai hésité à utiliser les onclicks en ligne, mais ils sont générés de manière sélective côté serveur. Certains groupes les obtiennent, d'autres non. Suggéreriez-vous que j'ajoute une fausse classe à la div parente pour les éléments qui devraient être activés par clic et utiliser une méthode d'accrochage à l'événement modifiée comme celle que vous avez sélectionnée, ou simplement les laisser en ligne. Je n'ai jamais vraiment compris pourquoi les déclarations en ligne étaient si indésirables que l'esthétique du code. – Laramie
@Laramie voir mon édition. –
A +1 pour l'explication exhaustive et la lecture suggérée. – Laramie