Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

saving a ref in order to remove the unload method

saving a ref in order to remove the unload method
add some test
  • Loading branch information...
commit a71e9f9ee383d6911b5b26fdeb679e5860eb37b4 1 parent e55422c
Cristian Carlesso authored
Showing with 15 additions and 1 deletion.
  1. +6 −1 Source/Element/Element.js
  2. +9 −0 Specs/1.4client/Element/Element.js
View
7 Source/Element/Element.js
@@ -900,7 +900,7 @@ Element.implement({
addListener: function(type, fn){
if (type == 'unload'){
var old = fn, self = this;
- fn = function(){
+ old.$ref = fn = function(){
self.removeListener('unload', fn);
old();
};
@@ -913,6 +913,11 @@ Element.implement({
},
removeListener: function(type, fn){
+ if (fn.$ref){
+ var old = fn;
+ fn = fn.$ref;
+ delete old.$ref;
+ }
if (this.removeEventListener) this.removeEventListener(type, fn, !!arguments[2]);
else this.detachEvent('on' + type, fn);
return this;
View
9 Specs/1.4client/Element/Element.js
@@ -10,6 +10,15 @@ describe('Element', function(){
describe('Element.getProperty', function(){
+ it('should remove the onunload method', function(){
+ var text;
+ var handler = function(){ text = 'nope'; };
+ window.addEvent('unload', handler);
+ window.removeEvent('unload', handler);
+ window.fireEvent('unload');
+ expect(text).toBe(undefined);
+ });
+
it('should get the attrubte of a form when the form has an input with as ID the attribute name', function(){
var div = new Element('div');
div.innerHTML = '<form action="s"><input id="action"></form>';
Please sign in to comment.
Something went wrong with that request. Please try again.