J'ai un problème. Fondamentalement, lorsqu'un utilisateur clique sur un lien "Modifier" sur une page, le code Jquery suivant est exécuté:
$("#saveBtn").click(function () {
saveQuestion(id);
});
En faisant cela, l'événement onClick du bouton de sauvegarde appelle la méthode saveQuestion()
et transmet l'ID de la question pour laquelle le lien "Modifier" a été cliqué.
Mais si, dans la même session, l'utilisateur clique sur modifier deux questions, au lieu de remplacer le gestionnaire d'événements précédent click
, il provoque l'exécution de deux gestionnaires d'événements, l'un pouvant appeler saveQuestion(1)
et l'autre pourrait appeler saveQuestion(2)
. En faisant cela, une question écrase l’autre.
Existe-t-il un moyen de supprimer tous les événements click
précédents attribués à un bouton?
Vous utiliseriez off () pour supprimer un événement comme celui-ci:
$("#saveBtn").off("click");
mais cela supprimera tous les événements de clic liés à cet élément. Si la fonction avec SaveQuestion est le seul événement lié, les actions ci-dessus le feront. Si ce n'est pas le cas:
$("#saveBtn").off("click").click(function() { saveQuestion(id); });
Existe-t-il un moyen de supprimer tous les événements de clic précédents attribués à un bouton?
$('#saveBtn').unbind('click').click(function(){saveQuestion(id)});
$('#saveBtn').off('click').click(function(){saveQuestion(id)});
Si vous avez utilisé ...
$(function(){
function myFunc() {
// ... do something ...
};
$('#saveBtn').click(myFunc);
});
... alors il sera plus facile de dissocier plus tard.