git.asbjorn.biz
/
jquery.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6861b5d
)
Adding in backwards-compatiblity support for jQuery().bind/unbind/trigger - and immed...
author
jeresig
<jeresig@gmail.com>
Wed, 6 Jan 2010 16:32:29 +0000
(11:32 -0500)
committer
jeresig
<jeresig@gmail.com>
Wed, 6 Jan 2010 16:32:29 +0000
(11:32 -0500)
src/event.js
patch
|
blob
|
history
test/unit/event.js
patch
|
blob
|
history
diff --git
a/src/event.js
b/src/event.js
index
fe98794
..
9abf838
100644
(file)
--- a/
src/event.js
+++ b/
src/event.js
@@
-752,6
+752,7
@@
jQuery.each(["bind", "one"], function( i, name ) {
for ( var key in type ) {
this[ name ](key, data, type[key], fn);
}
for ( var key in type ) {
this[ name ](key, data, type[key], fn);
}
+
return this;
}
return this;
}
@@
-766,11
+767,17
@@
jQuery.each(["bind", "one"], function( i, name ) {
return fn.apply( this, arguments );
}) : fn;
return fn.apply( this, arguments );
}) : fn;
- return type === "unload" && name !== "one" ?
- this.one( type, data, fn, thisObject ) :
- this.each(function() {
+ if ( type === "unload" && name !== "one" ) {
+ this.one( type, data, fn, thisObject );
+
+ } else {
+ // Deprecated: Please don't expect an empty jQuery set to bind to document
+ (!this.selector && !this.context ? jQuery(document) : this).each(function() {
jQuery.event.add( this, type, handler, data );
});
jQuery.event.add( this, type, handler, data );
});
+ }
+
+ return this;
};
});
};
});
@@
-784,14
+791,20
@@
jQuery.fn.extend({
return this;
}
return this;
}
- return this.each(function() {
+ // Deprecated: Please don't expect an empty jQuery set to bind to document
+ (!this.selector && !this.context ? jQuery(document) : this).each(function() {
jQuery.event.remove( this, type, fn );
});
jQuery.event.remove( this, type, fn );
});
+
+ return this;
},
trigger: function( type, data ) {
},
trigger: function( type, data ) {
- return this.each(function() {
+ // Deprecated: Please don't expect an empty jQuery set to bind to document
+ (!this.selector && !this.context ? jQuery(document) : this).each(function() {
jQuery.event.trigger( type, data, this );
});
jQuery.event.trigger( type, data, this );
});
+
+ return this;
},
triggerHandler: function( type, data ) {
},
triggerHandler: function( type, data ) {
diff --git
a/test/unit/event.js
b/test/unit/event.js
index
8a9e48b
..
7111bb5
100644
(file)
--- a/
test/unit/event.js
+++ b/
test/unit/event.js
@@
-118,6
+118,19
@@
test("bind(), trigger change on select", function() {
}).trigger('change');
});
}).trigger('change');
});
+test("bind/unbind/trigger on empty jQuery set", function() {
+ expect(1);
+
+ jQuery().bind("test", function(){
+ equals( this, document, "Handler triggered and bound on document." );
+ });
+
+ jQuery().trigger("test");
+
+ jQuery().unbind("test");
+ jQuery().trigger("test");
+});
+
test("bind(), namespaced events, cloned events", function() {
expect(6);
test("bind(), namespaced events, cloned events", function() {
expect(6);