2014-09-20 23 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