4

嗨,假设我有一个带有 id 的按钮,form-submit并且我的 OCaml 文件中有以下功能:

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

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

  form_submit##onclick <- ...

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

4

1 回答 1

5

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

这是一个最小的例子:

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

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

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

于 2015-05-02T23:15:22.640 回答