diff options
author | jeresig <jeresig@gmail.com> | 2010-01-06 11:32:29 -0500 |
---|---|---|
committer | jeresig <jeresig@gmail.com> | 2010-01-06 11:32:29 -0500 |
commit | e9d5947b4abbc052046585227892da0adcd56caf (patch) | |
tree | 40eda8dbaa8e2c4a4b2caa40f4bdeb6521addd4b | |
parent | 6861b5d4eb16222ed5ea623af6ce75362b55d1d4 (diff) | |
download | jquery-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.js | 23 | ||||
-rw-r--r-- | test/unit/event.js | 13 |
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); |