haskell – reflex-dom处理模态对话的正确方法是什么?

haskell – reflex-dom处理模态对话的正确方法是什么?,第1张

概述我刚刚开始使用 reflex-dom库,我无法找到使用对话框的正确方便的方法. 显示对话框通常意味着在< body>的末尾添加一些元素.当用户点击某些按钮,背景或按下时,例如,将其删除逃逸.但是,从某些嵌套小部件执行此 *** 作意味着以某种方式将事件(“显示对话框”)冒泡到顶部,这可能非常笨拙.有没有其他方法可以很好地做到这一点?我刚刚看了markup.rocks,似乎使用了一些JS / jQuery黑 我刚刚开始使用 reflex-dom库,我无法找到使用对话框的正确方便的方法.

显示对话框通常意味着在< body>的末尾添加一些元素.当用户点击某些按钮,背景或按下时,例如,将其删除逃逸.但是,从某些嵌套小部件执行此 *** 作意味着以某种方式将事件(“显示对话框”)冒泡到顶部,这可能非常笨拙.有没有其他方法可以很好地做到这一点?我刚刚看了markup.rocks,似乎使用了一些Js / jquery黑客.

我可以决定不使用模态对话框(毕竟它可能不是一个糟糕的选择),但对于某些事情,我可能真的需要它.

解决方法 最终我觉得很容易:

首先,获取body元素:

getbody = do  root <- askdocument  Just nodeList <- getElementsByTagname root ("body" :: String)  Just body <- nodeList `item` 0  return body

然后,假设触发器是触发打开对话框的事件,并且可见是一个保持当前状态的动态t布尔,我们可以创建一个背景并将其移动到正文的背面:

backdropAttr <- forDyn visible (\vis -> if vis then ("class" =: "modal-backdrop fade in")                                          else ("style" =: "display:none"))(backdrop,_) <- elDynAttr' "div" backdropAttr blankbody <- getbodylet moveBackdrop = (const $(appendChild body (Just $_el_element backdrop))) `fmap` triggerperformEvent_ $voID `fmap` moveBackdrop
总结

以上是内存溢出为你收集整理的haskell – reflex-dom处理模态对话的正确方法是什么?全部内容,希望文章能够帮你解决haskell – reflex-dom处理模态对话的正确方法是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1061589.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存