aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/dom_utils.coffee18
1 files changed, 9 insertions, 9 deletions
diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee
index 3fc08b78..9a6c1b09 100644
--- a/lib/dom_utils.coffee
+++ b/lib/dom_utils.coffee
@@ -3,15 +3,15 @@ DomUtils =
# Runs :callback if the DOM has loaded, otherwise runs it on load
#
documentReady: do ->
- isReady = false
- (callback) ->
- if document.readyState == "loading" and not isReady
- window.addEventListener "DOMContentLoaded", handler = ->
- isReady = true
- window.removeEventListener "DOMContentLoaded", handler
- callback()
- else
- callback()
+ [isReady, callbacks] = [document.readyState != "loading", []]
+ unless isReady
+ window.addEventListener "DOMContentLoaded", onDOMContentLoaded = ->
+ window.removeEventListener "DOMContentLoaded", onDOMContentLoaded
+ isReady = true
+ callback() for callback in callbacks
+ callbacks = null
+
+ (callback) -> if isReady then callback() else callbacks.push callback
createElement: (tagName) ->
element = document.createElement tagName