Broke out the logic for the bubbling change/submit events so that they aren't bound if they aren't used.
This commit is contained in:
parent
542099a278
commit
7d36ccfa8e
15
src/event.js
15
src/event.js
|
@ -569,9 +569,11 @@ jQuery.each({
|
||||||
});
|
});
|
||||||
|
|
||||||
// submit delegation
|
// submit delegation
|
||||||
|
if ( !jQuery.support.submitBubbles ) {
|
||||||
|
|
||||||
jQuery.event.special.submit = {
|
jQuery.event.special.submit = {
|
||||||
setup: function( data, namespaces, fn ) {
|
setup: function( data, namespaces, fn ) {
|
||||||
if ( !jQuery.support.submitBubbles && this.nodeName.toLowerCase() !== "form" ) {
|
if ( this.nodeName.toLowerCase() !== "form" ) {
|
||||||
jQuery.event.add(this, "click.specialSubmit." + fn.guid, function( e ) {
|
jQuery.event.add(this, "click.specialSubmit." + fn.guid, function( e ) {
|
||||||
var elem = e.target, type = elem.type;
|
var elem = e.target, type = elem.type;
|
||||||
|
|
||||||
|
@ -588,8 +590,6 @@ jQuery.event.special.submit = {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
remove: function( namespaces, fn ) {
|
remove: function( namespaces, fn ) {
|
||||||
|
@ -598,7 +598,11 @@ jQuery.event.special.submit = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// change delegation, happens here so we have bind.
|
// change delegation, happens here so we have bind.
|
||||||
|
if ( !jQuery.support.changeBubbles ) {
|
||||||
|
|
||||||
jQuery.event.special.change = {
|
jQuery.event.special.change = {
|
||||||
filters: {
|
filters: {
|
||||||
click: function( e ) {
|
click: function( e ) {
|
||||||
|
@ -647,23 +651,18 @@ jQuery.event.special.change = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
setup: function( data, namespaces, fn ) {
|
setup: function( data, namespaces, fn ) {
|
||||||
// return false if we bubble
|
|
||||||
if ( !jQuery.support.changeBubbles ) {
|
|
||||||
for ( var type in changeFilters ) {
|
for ( var type in changeFilters ) {
|
||||||
jQuery.event.add( this, type + ".specialChange." + fn.guid, changeFilters[type] );
|
jQuery.event.add( this, type + ".specialChange." + fn.guid, changeFilters[type] );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// always want to listen for change for trigger
|
// always want to listen for change for trigger
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
remove: function( namespaces, fn ) {
|
remove: function( namespaces, fn ) {
|
||||||
if ( !jQuery.support.changeBubbles ) {
|
|
||||||
for ( var type in changeFilters ) {
|
for ( var type in changeFilters ) {
|
||||||
jQuery.event.remove( this, type + ".specialChange" + (fn ? "."+fn.guid : ""), changeFilters[type] );
|
jQuery.event.remove( this, type + ".specialChange" + (fn ? "."+fn.guid : ""), changeFilters[type] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var changeFilters = jQuery.event.special.change.filters;
|
var changeFilters = jQuery.event.special.change.filters;
|
||||||
|
|
Loading…
Reference in a new issue