All Closure event names can be found in their documentation on the EventType enum.
(ns so-doc.events
(:require
[goog.dom :as dom]
[goog.events :as events]))
(defn handle-click [event] ;an event object is passed to all events
(js/alert "button pressed"))
(events/listen
(dom/getElement "button"); This is the dom element the event comes from
(.-CLICK events/EventType); This is a string or array of strings with the event names.
;;All event names can be found in the EventType enum
handle-click ;function that should handle the event
)
Google Closure does not support page-load events, and considers them to be not idiomatic. They recommend inserting scripts inline as soon as the content they to access has loaded.
(ns so-doc.events)
(enable-console-print!)
(defn click-event []
(println "Button clicked"))
(defn load-event []
(println "Page loaded!")
(.addEventListener (.getElementById js/document "btn") "click" click-event false))
(.addEventListener js/window "load" load-event false)
Like normal Javascript, this method requires browser specific handling. This will not work in Internet Explorer for instance.
Unlike Google Closure, JavaScript easily supports page-load events.