Ich habe ein Element in einer Webseite, das mehrere Rückrufe darauf hat
%Vor%Gibt es eine Möglichkeit, nur fn2 aus der Liste der von jQuery ausgelösten Rückrufe zu entfernen. Ich weiß, ich könnte ein 'wenn' innerhalb der Funktion und einige globale Variable hinzufügen, aber das ist nicht, was ich suche.
Interessant, dass noch niemand Namespaces erwähnt hat. Gibt es einen Grund dafür?
Wenn Sie Ihr Ereignis anhängen, können Sie es mit einem Namensraum versehen. Anstelle von $(elem).on('click', fn)
würden Sie dem click -Ereignis einen Namespace hinzufügen. $(elem).on('click.namespaced', fn)
Wenn Sie die Bindung aufgehoben haben, können Sie das exakte Ereignis mithilfe des Namensraums ebenfalls lösen.
$(elem).off('click.namespaced')
Dies ist am praktischsten, wenn Sie Ihre Ereignisfunktion inline definieren.
Eine weitere Sache, die Sie mit Namespaces machen können, besteht darin, alle Ereignistypen innerhalb eines Namensblocks mit nur einem einzigen Aufruf zu lösen: $(elem).off('.namespaced')
Sei vorsichtig mit deiner Syntax hier, andere Antworten sind sehr lose mit ihren.
Wenn Sie Folgendes verwenden:
%Vor%Dann müssen Sie verwenden:
%Vor%Sie können nicht
verwenden %Vor%oder
%Vor%, weil Sie Ihre Veranstaltung ursprünglich an #element, nicht an Dokument oder Körper gebunden haben.
Tags und Links javascript jquery events