WebSharper:如何使用.On事件处理程序

时间:2014-09-20 21:07:22

标签: jquery f# websharper

我正在尝试使用WebSharper提供的JQuery来捕获以下事件:selectstart。

所以我写下面的代码:

JQuery.Of(".editorArea").On("selectstart", fun x ->
    (
        JavaScript.Log("test")
        true
    )
)

问题是这永远不会在控制台中打印test字符串。而且我不知道如何使用具有obj类型的x,因此我无法真正访问事件信息。

1 个答案:

答案 0 :(得分:3)

除非您将事件绑定到textarea,输入:password或input:text,否则您的代码没有任何问题。在这种情况下,你需要听#34;选择"事件而不是" selectstart"如下例所示(注意事件对象的显式向下转换为Dom.Event以便访问其信息):

[<InlineAttribute "$elt.value.substring($elt.selectionStart, $elt.selectionEnd)">]
let selectedText elt = X<string>

let textareaSelection() =
    TextArea [Text "Select me"; Attr.Class "editorArea"]
    |>! OnAfterRender (fun _ ->
        JQuery.Of(".editorArea").On("select", fun x ->
            (As<Dom.Event> x).CurrentTarget
            |> selectedText
            |> JavaScript.Log
            true)     
        )