diff --git a/lib/events/trigger.js b/lib/events/trigger.js index 998b3a2..0fde9aa 100644 --- a/lib/events/trigger.js +++ b/lib/events/trigger.js @@ -16,7 +16,7 @@ module.exports = function(els, events, opts) { forEachEls(els, function(el) { var domFix = false - if (!el.parentNode) { + if (!el.parentNode && el !== document && el !== window) { // THANKS YOU IE (9/10//11 concerned) // dispatchEvent doesn't work if element is not in the dom domFix = true diff --git a/tests/lib/events.js b/tests/lib/events.js index 0a9a3f8..4eb7824 100644 --- a/tests/lib/events.js +++ b/tests/lib/events.js @@ -90,3 +90,21 @@ tape("test events on/off/trigger for multiple elements, multiple events", functi t.end() }) + +tape("test events on top level elements", function(t) { + var el = document; + + el.className = "" + on(el, "click", classCb) + trigger(el, "click") + t.equal(el.className, "on", "attached callback has been fired properly on document") + + el = window; + + el.className = "" + on(el, "click", classCb) + trigger(el, "click") + t.equal(el.className, "on", "attached callback has been fired properly on window") + + t.end() +})