aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjeresig <jeresig@gmail.com>2010-01-06 11:32:29 -0500
committerjeresig <jeresig@gmail.com>2010-01-06 11:32:29 -0500
commite9d5947b4abbc052046585227892da0adcd56caf (patch)
tree40eda8dbaa8e2c4a4b2caa40f4bdeb6521addd4b
parent6861b5d4eb16222ed5ea623af6ce75362b55d1d4 (diff)
downloadjquery-e9d5947b4abbc052046585227892da0adcd56caf.tar.gz
jquery-e9d5947b4abbc052046585227892da0adcd56caf.zip
Adding in backwards-compatiblity support for jQuery().bind/unbind/trigger - and immediately deprecating it. Please explicitly use jQuery(document) in your code.
-rw-r--r--src/event.js23
-rw-r--r--test/unit/event.js13
2 files changed, 31 insertions, 5 deletions
diff --git a/src/event.js b/src/event.js
index fe98794fd..9abf83878 100644
--- 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);
}
+
return this;
}
@@ -766,11 +767,17 @@ jQuery.each(["bind", "one"], function( i, name ) {
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 );
});
+ }
+
+ return this;
};
});
@@ -784,14 +791,20 @@ jQuery.fn.extend({
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 );
});
+
+ return this;
},
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 );
});
+
+ return this;
},
triggerHandler: function( type, data ) {
diff --git a/test/unit/event.js b/test/unit/event.js
index 8a9e48b02..7111bb556 100644
--- a/test/unit/event.js
+++ b/test/unit/event.js
@@ -118,6 +118,19 @@ test("bind(), trigger change on select", function() {
}).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);