问题标签 [ghcjs-dom]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 从 EventM 中移除当前监听器
假设我想使用 ghcjs-dom 创建一个事件侦听器,它响应单击,然后将其自身移除。
我有
添加和删除,以及
从EventM
. 如何SaferEventListener
从 中访问(我稍后将构建)EventM
,以便在事件发生时将其删除?
在 JavaScript 中,您使用命名函数表达式作为对 的回调addEventListener
,然后removeEventListener
从回调中应用到该名称。但这里似乎没有任何类似的东西是可能的。还是我错过了什么?
haskell - 使用带有反射的 Web 组件 HTML 标记
我尝试在 Reflex 中使用 Web 组件。代码是这样的:
对于 ui5-button 它按预期工作。其他 Web 组件触发 Reflex.Dom.Widget.Basic 中未定义的事件,例如“liveChange”。
我怎样才能将这些转化为反射事件?
javascript - 无法在 GHCJS 中触发`dispatchEvent`
目标是window.addEventListener("popstate", ...
从 GHCJS 代码调度的事件中触发。
到目前为止尝试过
GHCJS.DOM 不起作用
Language.Javascript.JSaddle 不起作用
FFI 不工作
调试输出
这确实有效:
并产生有趣的结果
如您所见,JSVal
s 是正确的,我们可以在 JavaScript 控制台中运行该命令。
最近的尝试
然后我发现如果我在 之后立即抛出错误dispatchEvent
,它就会触发。
这会导致预期的结果dispatchEvent_
,但显然不会这样做,因为它会导致运行时错误。
所以我想这可能是一个syncPoint
还是没有骰子
运行代码
你可以自己试试这个
localhost:8080
在浏览器中打开,然后单击单词"ECHO"
。
相关代码:
https://gitlab.com/fresheyeball/Shpadoinkle/blob/crud-example/router/Shpadoinkle/Router.hs#L100 https://gitlab.com/fresheyeball/Shpadoinkle/blob/crud-example/examples/servant-crud /View.hs#L43
haskell - 在 Haskell 中管理事件
我目前正在 Haskell 中使用 GHCJS.DOM/JSDOM,目的是创建一个小型 Web 应用程序。为了捕获“单击按钮”事件,我编写了以下代码:
(这是取自页面https://hackage.haskell.org/package/jsaddle-dom-0.9.4.1/docs/JSDOM-EventM.html的示例);问题如下:如果我删除了最后一行(所以我删除了 releaseAction),那么我可以多次单击“元素”,然后根据需要多次触发事件。另一方面,如果我不删除最后一行,这会取消事件,甚至阻止我触发单个事件。我的目标是让用户只点击一次“元素”,然后这个事件必须被禁止。我怎样才能完成这项工作?谢谢。