jquery hört auf, andere Handler aufzurufen

8

Nehmen wir an, ich habe Labels und ich füge zwei Click-Events hinzu:

%Vor%

Jetzt möchte ich nicht, dass die Warnung angezeigt wird, wenn auf das Label mit der Klasse disabled geklickt wird. Ist das möglich?

Hinweis: alert ist nur eine Dummy-Sache .. Ich führe stattdessen eine Reihe von Aktionen aus .. jeweils anders auf der Grundlage der tatsächlichen Bezeichnung

    
Gaurav Shah 29.11.2011, 11:28
quelle

1 Antwort

22

Wenn mehrere Event-Handler für dasselbe Ereignis an dasselbe Element gebunden sind, werden die Handler in der Reihenfolge aufgerufen, in der sie gebunden waren. Wenn Sie event.stopImmediatePropagation() in einem bestimmten Handler aufrufen, werden nachfolgende Handler nicht mehr angerufen.

Ändern Sie Ihre $('label').bind() wie folgt:

%Vor%

und verschiebe es über deine anderen .bind() Aufrufe. Dann wird dieser bestimmte Handler zuerst ausgeführt und hat die Möglichkeit, die Ausführung der anderen Handler zu verhindern.

( .stopImmediatePropagation() ist nicht dasselbe wie .stopPropagation() ] - Letzteres stoppt das Ereignis, das den DOM-Baum sprudelt, aber andere Handler auf demselben Element nicht stoppt.)

    
nnnnnn 29.11.2011, 11:42
quelle