如何使用js_of_ocaml添加onclick方法?

时间:2015-05-02 22:41:43

标签: javascript ocaml js-of-ocaml

嗨,假设我有一个ID为form-submit的按钮,我的OCaml文件中有以下功能:

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

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

  form_submit##onclick <- ...

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

1 个答案:

答案 0 :(得分:5)

您可以手动使用dom内容,但这不太方便。正确的方法是使用Lwt_js_events模块,使用Lwt构建对事件处理程序的抽象。

这是一个最小的例子:

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

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

Lwt.async这里确保将处理程序放置到适当位置&#34;当它处于良好状态时#34; (在这种情况下,启动lwt调度程序时)。使用它比忽略结果更好,因为它可以确保正确的调度。