/ / jQuery .off () entfernt keine Handler - Javascript, Jquery

jQuery .off () entfernt keine Handler - Javascript, jquery

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 № 1

weil 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.