knockoutjs: Verhindert das Ereignis-Bubbling für Elemente ohne Handler

8

Es scheint, als ob die Bindung <event>Bubble: false nur funktioniert, wenn ein definierter Event-Handler ( siehe Hinweis 4 ) für <event> .

Hier ist ein Beispiel Geige .

Für Elemente mit nativen Handlern für bestimmte Ereignisse (zB click: <textarea> , <a> , <select> usw.), wo der native Handler ausreicht, würde ich erwarten, dass die Bindung gesetzt wird, zB clickBubble: false an Sie müssen, ohne einen "falschen" Handler binden zu müssen, arbeiten.

Ich denke, meine Frage ist, gibt es einen anderen Weg, dies ohne zusätzliche Bindungen zu erreichen?

    
Steven 18.12.2012, 22:06
quelle

1 Antwort

22

Die Bubble -Handler sind keine tatsächlichen Bindungshandler und werden als Optionen in der event -Bindung ( click bindende Aufrufe event -Bindung) verwendet. Sie laufen also nicht alleine.

Sie können also einen "falschen" No-Op-Handler hinzufügen und clickBubble verwenden, oder Sie könnten sicherlich eine benutzerdefinierte Bindung erstellen, um dies für Sie zu tun.

Vielleicht etwas wie:

%Vor%

Und dann einfach:

%Vor%

Sie können es auch noch erweitern, um gegebenenfalls ein Array von Ereignissen zu akzeptieren.

Beispiel: Ссылка

    
RP Niemeyer 18.12.2012, 22:43
quelle