Adding in backwards-compatiblity support for jQuery().bind/unbind/trigger - and immediately deprecating it. Please explicitly use jQuery(document) in your code.
This commit is contained in:
parent
6861b5d4eb
commit
e9d5947b4a
2 changed files with 31 additions and 5 deletions
23
src/event.js
23
src/event.js
|
@ -752,6 +752,7 @@ jQuery.each(["bind", "one"], function( i, name ) {
|
||||||
for ( var key in type ) {
|
for ( var key in type ) {
|
||||||
this[ name ](key, data, type[key], fn);
|
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 );
|
return fn.apply( this, arguments );
|
||||||
}) : fn;
|
}) : fn;
|
||||||
|
|
||||||
return type === "unload" && name !== "one" ?
|
if ( type === "unload" && name !== "one" ) {
|
||||||
this.one( type, data, fn, thisObject ) :
|
this.one( type, data, fn, thisObject );
|
||||||
this.each(function() {
|
|
||||||
|
} 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 ) {
|
||||||
|
|
|
@ -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() {
|
test("bind(), namespaced events, cloned events", function() {
|
||||||
expect(6);
|
expect(6);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue