Skip to content

Commit

Permalink
Merge pull request #106 from jsdw/master
Browse files Browse the repository at this point in the history
support removing specific attached events
  • Loading branch information
marcj committed May 13, 2016
2 parents 7768637 + 3903698 commit 7f80a35
Showing 1 changed file with 25 additions and 9 deletions.
34 changes: 25 additions & 9 deletions src/ResizeSensor.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,29 @@
* @constructor
*/
function EventQueue() {
this.q = [];
var q = [];
this.add = function(ev) {
this.q.push(ev);
q.push(ev);
};

var i, j;
this.call = function() {
for (i = 0, j = this.q.length; i < j; i++) {
this.q[i].call();
for (i = 0, j = q.length; i < j; i++) {
q[i].call();
}
};

this.remove = function(ev) {
var newQueue = [];
for(i = 0, j = q.length; i < j; i++) {
if(q[i] !== ev) newQueue.push(q[i]);
}
q = newQueue;
}

this.length = function() {
return q.length;
}
}

/**
Expand Down Expand Up @@ -163,19 +175,23 @@
attachResizeEvent(element, callback);
}

this.detach = function() {
this.detach = function(ev) {
if (isCollectionTyped) {
var i = 0, j = element.length;
for (; i < j; i++) {
ResizeSensor.detach(element[i]);
ResizeSensor.detach(element[i], ev);
}
} else {
ResizeSensor.detach(element);
ResizeSensor.detach(element, ev);
}
};
};

ResizeSensor.detach = function(element) {
ResizeSensor.detach = function(element, ev) {
if(typeof ev == "function"){
element.resizedAttached.remove(ev);
if(element.resizedAttached.length()) return;
}
if (element.resizeSensor) {
element.removeChild(element.resizeSensor);
delete element.resizeSensor;
Expand All @@ -191,4 +207,4 @@
window.ResizeSensor = ResizeSensor;
}

})();
})();

0 comments on commit 7f80a35

Please sign in to comment.