javascript - 如何使用 js_of_ocaml 添加 onclick 方法?

标签 javascript ocaml js-of-ocaml

嗨,假设我有一个 ID 为 form-submit 的按钮,并且我的 OCaml 文件中有以下函数:

let () =
   let form_submit = Dom_html.getElementById "form-submit" in
   ...

向按钮添加 on_click 方法的正确方法是什么?我应该做这样的事情吗?

  form_submit##onclick <- ...

但是处理函数的类型是什么?我在文档中找不到它。

最佳答案

你可以手动使用dom的东西,但不是很方便。正确的方法是使用 Lwt_js_events使用 Lwt 在事件处理程序上构建抽象的模块。

这是一个最小的例子:

Lwt.async (fun () ->
  Lwt_js_events.clicks form_submit
    (fun _ev _thread -> Lwt.return () )
  )

第一个参数是事件对象,第二个是循环线程。您可以在开始时使用通用构造非常精细地调整处理程序的行为。

Lwt.async 确保处理程序将在“合适的时候”放置到位(在本例中,当 lwt 调度程序启动时)。最好使用它而不是忽略结果,因为它可以确保正确的调度。

关于javascript - 如何使用 js_of_ocaml 添加 onclick 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30008314/

相关文章:

compiler-errors - 使用List.fold_left时的错误类型

functional-programming - 禁止OCaml中的详尽匹配警告

javascript - 如何构造一个js对象并用js_of_ocaml调用它的方法?

javascript - 代码完成不适用于 OcaIde + js_of_ocaml

javascript - 图像/DIV 元素切换全屏

javascript - Three.js:导入和使用 3d 模型

javascript - postman :如何检查该字段是否在 postman 自动化中返回空值

JavaScript 动画没有按顺序运行?

ocaml menhir - 简单语法的流冲突结束

javascript - 更新html slider 属性但在页面中不可见