2015-05-02 62 views
4

嗨假設我有id爲form-submit一個按鈕,我有以下功能在我OCaml的文件:如何使用js_of_ocaml添加onclick方法?

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

什麼是一個on_click方法添加到該按鈕的正確方法?我應該這樣做嗎?

form_submit##onclick <- ... 

但是什麼是處理函數的類型?我無法在文檔中找到它。

回答

5

你可以手動使用dom的東西,但它不是很方便。正確的方法是使用Lwt_js_events模塊構建使用Lwt的事件處理程序的抽象。

這裏是一個小例子:

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

第一個參數是事件對象,第二個是環線程。您可以在開始時使用一般構造來非常精細地調整處理程序的行爲。

Lwt.async這裏確保處理程序將「當它很好」(在這種情況下,當lwt調度程序啓動時)到位。最好使用它而不是忽略結果,因爲它可以確保正確的調度。

相關問題