在我的应用程序中,用户可以单击div以突出显示它。有没有办法检测到他们点击了远离div的某个地方?当发生这种情况时,我想不要强调所选择的东西。我尝试将onclick添加到包含其他所有内容的大div中,但这并没有真正按预期工作。 IIRC on the big div onclick总是发生在包含的div onclick之后,所以你不能选择任何东西。
你可以通过在div上添加一个“click”事件然后在内部div中,使用onWithOptions
来阻止事件的传播。这是一些(未经测试的)代码:
onClickStop msg =
onWithOptions "click"
{ stopPropagation = True, preventDefault = False }
(Json.succeed msg)
view _ =
div [ onClick Clicked ]
[ div [ onClickStop NoOp ] []
]
当用户在嵌套div中单击时,将忽略该事件,并且将取消其传播到其父级。只有当用户点击内部div时,才会将Clicked
消息发送到update
。