我正在尝试使用RxJS进行弹出菜单,这是我停止的地方:http://jsbin.com/coqulamamo/1/edit?html,js,output
我已映射到2个主要事件流,menuActivation
和menuDeactivation
:
menuActivation
会在其任何一个孩子发出mouseenter
或focusin
时发出一个弹出式容器。menuDeactivation
在第一个menuActivation
之后或下次任何非后代元素发出mouseleave
时发出最后一个focusin
元素。对于menuActivation
上的每个弹出容器,附加active
个类;对于每个menuDeactivation
,active
类将从元素中删除。
到目前为止,这么好。但是现在,我如何防止过多的DOM操作?当菜单已经处于活动状态时,无需激活菜单,这同样适用于停用,但我不想在Rx.Subject中保留状态,页面上可以分布任意长度的弹出菜单。
我尝试了.distinctUntilChanged()
,但是当menuActivation
中依次发出弹出式容器,然后又发送到menuDeactivation
时,下一次menuActivation
上不会发出相同的弹出窗口
在menuActivation.distinctUntilChanged()
投标后,是否有办法让弹出式容器超过menuDeactivation
?