Skip to content

Commit

Permalink
get window object of the element. fixes #644
Browse files Browse the repository at this point in the history
  • Loading branch information
jtangelder committed Sep 1, 2014
1 parent 39c332b commit 1597e97
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 8 deletions.
4 changes: 2 additions & 2 deletions src/input.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ Input.prototype = {
init: function() {
this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);
this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);
this.evWin && addEventListeners(window, this.evWin, this.domHandler);
this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);
},

/**
Expand All @@ -77,7 +77,7 @@ Input.prototype = {
destroy: function() {
this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);
this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);
this.evWin && removeEventListeners(window, this.evWin, this.domHandler);
this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);
}
};

Expand Down
22 changes: 16 additions & 6 deletions src/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -147,25 +147,25 @@ function ifUndefined(val1, val2) {

/**
* addEventListener with multiple events at once
* @param {HTMLElement} element
* @param {EventTarget} target
* @param {String} types
* @param {Function} handler
*/
function addEventListeners(element, types, handler) {
function addEventListeners(target, types, handler) {
each(splitStr(types), function(type) {
element.addEventListener(type, handler, false);
target.addEventListener(type, handler, false);
});
}

/**
* removeEventListener with multiple events at once
* @param {HTMLElement} element
* @param {EventTarget} target
* @param {String} types
* @param {Function} handler
*/
function removeEventListeners(element, types, handler) {
function removeEventListeners(target, types, handler) {
each(splitStr(types), function(type) {
element.removeEventListener(type, handler, false);
target.removeEventListener(type, handler, false);
});
}

Expand Down Expand Up @@ -294,3 +294,13 @@ var _uniqueId = 1;
function uniqueId() {
return _uniqueId++;
}

/**
* get the window object of an element
* @param {HTMLElement} element
* @returns {DocumentView|Window}
*/
function getWindowForElement(element) {
var doc = element.ownerDocument;
return (doc.defaultView || doc.parentWindow);
}

0 comments on commit 1597e97

Please sign in to comment.