Je suis dans une situation où je veux basculer lorsque l'utilisateur clique ou tape enter
.Empêche le déclenchement de deux types d'événements
Malheureusement, je travaille sur un site massif qui, quelque part, à l'écoute de la clé enter
et déclenche .click()
sur certains articles quand ils reçoivent une enter
keyup. Je ne peux pas trouver où, et je ne voudrais pas (ou être en mesure) pour le changer si je pouvais trouver, mais il se comporte comme ceci:
$("#item").on("keyup", function(event){
if(event.keyCode == 13){$('#item').click();}
});
Le résultat est que mon script « bascule » s'exécute deux fois lorsqu'un utilisateur tape enter
, se défait.
$('body').on('click keyup', '#item', function(e) {
console.log("-----------------");
if(e.type=="click") {
console.log("Event Type: " + e.type);
//toggle something
} else {
console.log("Event Type: " + e.type+ ", keyCode: " + e.keyCode);
//toggle something
}
});
est-il un moyen d'éviter à la fois keyup
et click
d'être tiré quand quelqu'un frappe entrer? La réponse évidente est de supprimer la partie keyup
du script, cependant, cela ne fonctionnera pas pour moi car le script [enter] -> [click] n'est pas appliqué universellement, j'ai donc besoin de la touche enter
pour travailler sur les éléments où cela ne s'applique pas.
Vous pouvez supprimer la liaison (s) précédente en utilisant '.off() ' –
Comme mentionné dans la question, je ne veux pas changer la liaison existante, mais je suppose que j'avais tort quand j'ai dit que je serais" incapable "de le changer. Je suis juste "incapable" dans le sens où c'est nécessaire tel quel. – brentonstrine
Ah d'accord, je pensais que vous ne pouviez pas changer leur code, mais je suppose que vous ne voulez pas changer ce comportement. –