2

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

所以我写了以下代码:

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

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

4

1 回答 1

3

除非您将事件绑定到 textarea、input:password 或 input:text,否则您的代码没有任何问题。在这种情况下,您需要收听“select”事件而不是像下面的示例中的“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)     
        )
于 2014-09-21T07:11:52.343 回答