Wie entferne ich einen bestimmten Ereignisrückruf von einem HTML-Element mit jquery?

8

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.

    
malber 12.03.2013, 09:31
quelle

5 Antworten

4

Der zweite Parameter in der Funktion unbind gibt den zu entfernenden Handler an.

%Vor%

Arbeitsbeispiel: Ссылка

    
Kevin Bowersox 12.03.2013, 09:34
quelle
3

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')

    
MildlySerious 12.03.2013 10:08
quelle
1

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.

    
Adam 12.03.2013 09:41
quelle
0

Unbind verwenden: Ссылка

Beispiel:

%Vor%     
user504674 12.03.2013 09:34
quelle
0

verwenden .off

%Vor%

Arbeitsgeige

    
bipen 12.03.2013 09:35
quelle

Tags und Links