У меня возникли проблемы с получением списка «touch» или «changedTouches» из события Touchstart в Domina.clojurescript: события касания и Domina
Вот мой: требуется материал:
(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))))
«де» является атом, который я пытаюсь использовать для отладки. Я могу получить тип: из события, но это все. Практически никто из прокомментированных вещей не работает, кроме ev/raw-event. raw-event возвращает объект, который может быть инкрустирован из repl, по крайней мере для меня. Если я поменяю! де с сырым-событие выглядит следующим образом:
ClojureScript:myproj>@de
#<[object Object]>
Я понятия не имею, как извлекать информацию из этого, кажется, довольно не реагирует на такие вещи, как (ключи х) или (.keys х) и т.д.
Также странно, что я могу вызвать (: type evt) в вышеприведенной функции, но если я назначу evt на de, я не могу сделать то же самое с атомом de в repl, то есть (: type @de).