Je veux être en mesure de désactiver la fonctionnalité de clic d'un bouton radio afin que je puisse le décocher. Cependant, lorsque je le désélectionne, le clic se déclenche toujours et le résultat final est une radio qui désélectionne (et modifie d'autres éléments de page en conséquence), puis revérifie à cause de l'événement onclick.Comment désactiver le gestionnaire de clic sur un nœud YUI?
var clickFunction = function(e, radio, p){
var checked = radio.get("checked");
radio.set("checked", !checked);
};
this.controlNode = Y.Node.create("<input id='" + id + "' onclick='function(e){return false;}' type='radio' name='" + parent.id + "'>");
this.label = Y.Node.create("<label for='" + id + "'>" + display + "</label>");
Y.on("mousedown", clickFunction, this.label, this.controlNode, parent.controlNode);
parent.controlNode.appendChild(this.controlNode);
parent.controlNode.appendChild(this.label);
Le gestionnaire d'événements mousedown est utilisé, comme il est pour les gros doigts sur un (fenêtres) écran tactile, et le mouvement entre mousedown et mouseup ne constitue pas un clic. (Tout au long d'un tapotement avec le doigt, le doigt augmentera et diminuera sa surface sur l'écran, et un écran non multitouch placera le curseur à la moyenne des points de contact, un léger roulis déplacera le curseur). La souris baisse vers le haut et entraîne une évaluation des dépendances et affiche/cache les autres contrôles sur une page.
Je veux simplement annuler; et je pense qu'avoir une autre option de réinitialisation est moins que satisfaisant pour mon usage particulier. Si rien d'autre ne se produit ici, je devrai l'utiliser.
Cela m'a complètement troublé. –
@Roatin - ne vous inquiétez pas. J'ai eu du mal à faire en sorte que cette question soit suffisamment claire pour répondre. C'est un problème étrange - un seul élément doit être sélectionné, donc une radio est appropriée. Cependant, en raison de la propagation d'un événement, il ne suffit pas d'effacer la variable "checked", car les événements ont besoin de bulles pour que les autres auditeurs sachent que le contrôle a changé ... – Stephen