显示对话框通常意味着在< 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处理模态对话的正确方法是什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)