我无法从 Domina 的 touchstart 事件中获取 'touch' 或 'changedTouches' 列表。
这是我的 :require 东西:
(ns myproj
(:require-macros [hiccups.core :as h])
(:require [domina :as dom]
[hiccups.runtime :as hiccupsrt]
[domina.events :as ev]
[cljs.reader :refer [read-string]]
[wsosc :as wo]
[clojure.browser.repl :as repl]
))
这是我的 touchstart 事件处理程序:
(defn touchstart [evt]
; store event in an atom for repl access
(swap! de (fn [x] evt))
; print something to html to show a result (no console on the phone)
(dom/set-text! (dom/by-id "result") (str "blah" evt))
; hopefully someday extract touch coordinates here.
(let [rct (.getBoundingClientRect (dom/by-id "osccanvas"))
;touchlist1 (get evt "changedTouches")
;touchlist2 (.changedTouches evt)
;touchlist3 (.-changedTouches evt)
;kies (keys evt)]
wat (:type evt) ; this works
;wat (ev/raw-event evt) ; this works
;touchlist (.-changedTouches evt)]
;touch (.item touchlist 1)]
]
(dom/set-text! (dom/by-id "result") (str "touchstart touch:" wat))))
'de' 是我试图用于调试的原子。我能够从事件中获取 :type ,仅此而已。除了 ev/raw-event 之外,几乎所有其他注释的东西都不起作用。raw-event 返回一个从 repl 中相当难以破解的对象,至少对我来说是这样。如果我换!de 与 raw-event 它看起来像这样:
ClojureScript:myproj>@de
#<[object Object]>
我不知道如何从中提取信息,它似乎对 (keys x) 或 (.keys x) 等内容反应迟钝。
同样奇怪的是我可以在上面的函数中调用 (:type evt),但是如果我将 evt 分配给 de,我就不能对 repl 处的 'de' 原子做同样的事情,即 (:type @de )。