Ich habe eine dynamisch geladene Schaltfläche, die erstellt wird, wenn das Dokument geladen wird. Danach füge ich einen Klick-Handler an diese Schaltfläche an. Wenn ich versuche, den Handler mit zu entfernen .off()
, es funktioniert nicht.
Dieses Snippet erstellt den Click-Handler und entfernt ihn. Wenn ich jedoch auf die Schaltfläche klicke, funktioniert die Funktion StartMash
führt immer noch aus.
$(document).on("click", "#mash-idle-start", StartMash);
$("#mash-idle-start").off();
Offensichtlich ist dies nicht die Funktionalität, die ich erreichen möchte, aber das Problem bleibt durch dieses einfache Beispiel bestehen
Antworten:
5 für die Antwort № 1weil der Event-Handler nicht angeschlossen ist #mash-idle-start
, es hängt an document
damit
$(document).off("click", "#mash-idle-start", StartMash);
oder
$(document).off("click", "#mash-idle-start");
Hinweis: Wenn Sie mit Event Unbinding arbeiten, versuchen Sie es mit Ereignis-Namespaces Sie haben mehr Kontrolle darüber, welche Handler entfernt werden.