如何正确应用distinctUntilChanged进行DOM操作最小化

时间:2015-08-11 18:26:43

标签: javascript reactive-programming frp rxjs

我正在尝试使用RxJS进行弹出菜单,这是我停止的地方:http://jsbin.com/coqulamamo/1/edit?html,js,output

我已映射到2个主要事件流,menuActivationmenuDeactivation

  • menuActivation会在其任何一个孩子发出mouseenterfocusin时发出一个弹出式容器。
  • menuDeactivation在第一个menuActivation之后或下次任何非后代元素发出mouseleave时发出最后一个focusin元素。

对于menuActivation上的每个弹出容器,附加active个类;对于每个menuDeactivationactive类将从元素中删除。

到目前为止,这么好。但是现在,我如何防止过多的DOM操作?当菜单已经处于活动状态时,无需激活菜单,这同样适用于停用,但我不想在Rx.Subject中保留状态,页面上可以分布任意长度的弹出菜单。

我尝试了.distinctUntilChanged(),但是当menuActivation中依次发出弹出式容器,然后又发送到menuDeactivation时,下一次menuActivation上不会发出相同的弹出窗口

menuActivation.distinctUntilChanged()投标后,是否有办法让弹出式容器超过menuDeactivation

0 个答案:

没有答案