后,其他标识事件我有一个div
与下面的操作来模拟菜单如何榆树
div
[ onClick address Toggle
, onFocus address Open
, onBlur address Close
]
[ ... some items with click handlers ]
当一个标签到div
,使其具有焦点并执行Open
,显示菜单。
当失去焦点,onBlur
升高并执行Close
其隐藏菜单
单击时,它Open
或Close
之间切换。
这工作正常,但也有一些问题
方案
- 当在
div
用户点击,它触发onFocus
打开的菜单。 - 然后它触发
onClick
,它执行切换并因此关闭菜单。
如何在onFocus
之后识别onClick
以便不切换菜单?如果不是,在Elm中处理这种情况的最佳方法是什么?
这工作正常,如果用户选项卡的div,然后点击它。既然它已经有了重点,它就会按预期切换并行为。
您应该为您的模型添加一些状态,以便您可以在菜单打开或关闭的情况下保留trask,并根据模型状态对事件作出反应 – marcosh
我有菜单打开时要监视的状态或关闭。这是状态切换时使用的。点击后,它会触发'onFocus',它将状态设置为'Open',然后触发'onClick'来切换状态,并将其设置为'Closed' – ritcoder
ok,现在我看到了问题。只是我的2美分...也许你可以修改你的状态,也有一个'JustOpened'选项。在'onFocus'事件中,您将模型置于'JustOpened'状态并在一定的毫秒数后触发另一个事件(可能使用'Time'。延迟“功能)将状态转移到”打开“状态 – marcosh