jquery event: closes #5250. bind(), unbind() and one() support Object Literals (needs some refactor though)
This commit is contained in:
parent
97e134fe80
commit
9ebb2fc654
2 changed files with 78 additions and 0 deletions
25
src/event.js
25
src/event.js
|
@ -564,7 +564,16 @@ jQuery.each({
|
|||
});
|
||||
|
||||
jQuery.fn.extend({
|
||||
// TODO: make bind(), unbind() and one() DRY!
|
||||
bind: function( type, data, fn, thisObject ) {
|
||||
// Handle object literals
|
||||
if ( typeof type === "object" ) {
|
||||
for ( var key in type ) {
|
||||
this.bind(key, data, type[key], fn);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
if ( jQuery.isFunction( data ) ) {
|
||||
thisObject = fn;
|
||||
fn = data;
|
||||
|
@ -577,6 +586,14 @@ jQuery.fn.extend({
|
|||
},
|
||||
|
||||
one: function( type, data, fn, thisObject ) {
|
||||
// Handle object literals
|
||||
if ( typeof type === "object" ) {
|
||||
for ( var key in type ) {
|
||||
this.one(key, data, type[key], fn);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
if ( jQuery.isFunction( data ) ) {
|
||||
thisObject = fn;
|
||||
fn = data;
|
||||
|
@ -593,6 +610,14 @@ jQuery.fn.extend({
|
|||
},
|
||||
|
||||
unbind: function( type, fn ) {
|
||||
// Handle object literals
|
||||
if ( typeof type === "object" && !type.preventDefault ) {
|
||||
for ( var key in type ) {
|
||||
this.unbind(key, type[key]);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
return this.each(function() {
|
||||
jQuery.event.remove( this, type, fn );
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue