2014-09-20 43 views
2

我试图使用WebSharper提供的JQuery来捕获以下事件:selectstart。WebSharper:如何使用.On事件处理程序

所以我写了下面的代码:

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

问题是这样的从不打印test串在控制台中。我不知道如何使用具有obj类型的x,所以我无法真正访问事件信息。

回答

3

除非将事件绑定到textarea,input:password或input:text,否则代码没有任何问题。在这种情况下,你需要听“选择”事件,而不是“选择开始”就像下面的例子(注意事件对象的明确低垂到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)  
     ) 
+0

Thans您的回复。我正在使用'div editable',它的功能就像一个魅力:)。我喜欢WebSharper,但是我发现它在某些方面缺乏文档。或者只是因为我从它开始。 – 2014-09-21 08:17:55