});
// submit delegation
+if ( !jQuery.support.submitBubbles ) {
+
jQuery.event.special.submit = {
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 ) {
var elem = e.target, type = elem.type;
}
});
}
-
- return false;
},
remove: function( namespaces, fn ) {
}
};
+}
+
// change delegation, happens here so we have bind.
+if ( !jQuery.support.changeBubbles ) {
+
jQuery.event.special.change = {
filters: {
click: function( e ) {
}
},
setup: function( data, namespaces, fn ) {
- // return false if we bubble
- if ( !jQuery.support.changeBubbles ) {
- for ( var type in changeFilters ) {
- jQuery.event.add( this, type + ".specialChange." + fn.guid, changeFilters[type] );
- }
+ for ( var type in changeFilters ) {
+ jQuery.event.add( this, type + ".specialChange." + fn.guid, changeFilters[type] );
}
// always want to listen for change for trigger
return false;
},
remove: function( namespaces, fn ) {
- if ( !jQuery.support.changeBubbles ) {
- for ( var type in changeFilters ) {
- jQuery.event.remove( this, type + ".specialChange" + (fn ? "."+fn.guid : ""), changeFilters[type] );
- }
+ for ( var type in changeFilters ) {
+ jQuery.event.remove( this, type + ".specialChange" + (fn ? "."+fn.guid : ""), changeFilters[type] );
}
}
};
}
// Create "bubbling" focus and blur events
-jQuery.each({
- focus: "focusin",
- blur: "focusout"
-}, function( orig, fix ){
- var event = jQuery.event,
- handle = event.handle;
-
- function ieHandler() {
- arguments[0].type = orig;
- return handle.apply(this, arguments);
- }
+if ( !jQuery.support.focusBubbles ) {
- event.special[orig] = {
- setup:function() {
- if ( this.addEventListener ) {
- this.addEventListener( orig, handle, true );
- } else {
- event.add( this, fix, ieHandler );
- }
+jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ){
+ event.special[ orig ] = {
+ setup: function() {
+ jQuery.event.add( this, fix, ieHandler );
},
- teardown:function() {
- if ( this.removeEventListener ) {
- this.removeEventListener( orig, handle, true );
- } else {
- event.remove( this, fix, ieHandler );
- }
+ teardown: function() {
+ jQuery.event.remove( this, fix, ieHandler );
}
};
+
+ function ieHandler() {
+ arguments[0].type = orig;
+ return jQuery.event.handle.apply(this, arguments);
+ }
});
+}
+
jQuery.fn.extend({
// TODO: make bind(), unbind() and one() DRY!
bind: function( type, data, fn, thisObject ) {