打开下拉列表时抑制React onClick事件

时间:2019-09-09 09:37:08

标签: javascript reactjs dom-events react-hooks

我创建了一个codeandbox来演示问题: https://codesandbox.io/s/cocky-wu-mibxl

由于某种原因,下拉列表打开后,链接上的onClick事件处理程序不会在打开下拉列表时触发,我也不知道为什么。希望您能在这里帮助我。

2 个答案:

答案 0 :(得分:2)

mousedown事件通常在单击/ mouseup之前(> 50ms)发生很多,在这种情况下,dom发生了变化,并且您单击的元素不在您开始单击(mousedown)的位置,并且没有收到点击事件。您可以向useOnClickOutside cb调用添加超时,但这是非常不可靠的。

答案 1 :(得分:1)

Javascript是一种单线程语言。因此,要关闭<Dropdown>列表,您需要先关闭alert()框。最接近的是注释中的变通方法,或者您可以将单击链接的操作更改为OnMouseUp而不是OnClick。无论哪种方式,您仍然需要关闭警报框以继续执行。