Skip to content

Instantly share code, notes, and snippets.

@eneroth
Last active August 29, 2015 13:56
Show Gist options
  • Save eneroth/9261567 to your computer and use it in GitHub Desktop.
Save eneroth/9261567 to your computer and use it in GitHub Desktop.
Lyssna på enter (kolla konsollen)
;; Rendera en låda
;; ---------------
(defn command-box
[]
[:input#commandbox {}]) ;; "commandbox" är IDt
(render-component [command-box] (get-element "body"))
;; Lyssna på events fran elementet
;; -------------------------------
(defn is-enter? [event]
(= 13 (.-keyCode event))) ;; 13 är "enter"
(def command-element (get-element "commandbox")) ;; Skapa referens till lådan vi byggde ovan
(def commands-channel (listen command-element "keyup")) ;; Lyssna på alla knapptryck i lådan
(def enter-only-channel (async/filter< is-enter? commands-channel)) ;; Filtrera bort alla knapptryckningar som inte är "enter"
(go
(loop []
(<! enter-only-channel) ;; Kommer att returnera när ett värde kommer in på enter-only-channel
(log (.-value command-element)) ;; Plockar ut innehållet ur inputlådan och skriver ut det i loggen
(recur)))
;; PS. ".-" är en javascript-interop. Det plockar ut en parameter ur ett javascriptobjekt.
;; Detta behövs då command-element och event (i is-enter?) är javascriptobjekt.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment