2016-11-03 3 views
0

Ich versuche, auf eine zusammengeführte Observable Touch- und Mousedown-Ereignisse zu reagieren, um ein Menü zu öffnen/schließen. Das Problem besteht darin, dass der Code für die Umschaltfunktion zweimal ausgeführt wird. Ich habe bestätigt, dass es durch das Ereignis an die Konsole angemeldet hat, und es ist das gleiche Ereignis, das protokolliert:RxJS 5 vonEreignis beobachtbar abonnieren zweimal aufgerufen

export const toggleMenu = (openButton, closeButton) => { 
    return Observable.merge(
    Observable.fromEvent(openButton, 'mousedown'), 
    Observable.fromEvent(closeButton, 'mousedown')) 
     .subscribe((event) => { 
     console.log(event); 
     if (elementIsVisible(nav)) { 
      hideElement(nav); 
     } else { 
      showElement(nav); 
     } 
     }); 
}; 

So endet diese Öffnung dann sofort das Menü zu schließen.

+0

Können Sie eine Demo auf Jsbin oder woanders machen? – martin

+0

Wie lautet der Ausdruck der Ereignisse (Zeile 6 in Ihrem Code)? – Meir

Antwort

0

Ok, das war mein Fehler. Der tatsächlich veröffentlichte Code ist in Ordnung, aber ich habe die Klasse, die diese Funktion zweimal aufgerufen hat, instanziiert, also gab es zwei Subskriptionen.

Verwandte Themen