Skip to content

Commit 9c4aaeb

Browse files
committed
Expose jQuery.event.simulate for use by special event handlers.
1 parent 8dda57f commit 9c4aaeb

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

src/event.js

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -586,6 +586,25 @@ jQuery.event = {
586586
}
587587
}
588588
}
589+
},
590+
591+
simulate: function( type, elem, event, bubble ) {
592+
// Piggyback on a donor event to simulate a different one.
593+
// Fake originalEvent to avoid donor's stopPropagation, but if the
594+
// simulated event prevents default then we do the same on the donor.
595+
var e = jQuery.extend(
596+
new jQuery.Event(),
597+
event,
598+
{ type: type, isSimulated: true, originalEvent: {} }
599+
);
600+
if ( bubble ) {
601+
jQuery.event.trigger( e, null, elem );
602+
} else {
603+
jQuery.event.handle.call( elem, e );
604+
}
605+
if ( e.isDefaultPrevented() ) {
606+
event.preventDefault();
607+
}
589608
}
590609
};
591610

@@ -766,7 +785,7 @@ if ( !jQuery.support.submitBubbles ) {
766785
jQuery.event.add( form, "submit._submit", function( event ) {
767786
// Form was submitted, bubble the event up the tree
768787
if ( this.parentNode ) {
769-
simulate( "submit", this.parentNode, event, true );
788+
jQuery.event.simulate( "submit", this.parentNode, event, true );
770789
}
771790
});
772791
form._submit_attached = true;
@@ -807,7 +826,7 @@ if ( !jQuery.support.changeBubbles ) {
807826
jQuery.event.add( this, "click._change", function( event ) {
808827
if ( this._just_changed ) {
809828
this._just_changed = false;
810-
simulate( "change", this, event, true );
829+
jQuery.event.simulate( "change", this, event, true );
811830
}
812831
});
813832
}
@@ -820,7 +839,7 @@ if ( !jQuery.support.changeBubbles ) {
820839
if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) {
821840
jQuery.event.add( elem, "change._change", function( event ) {
822841
if ( this.parentNode && !event.isSimulated ) {
823-
simulate( "change", this.parentNode, event, true );
842+
jQuery.event.simulate( "change", this.parentNode, event, true );
824843
}
825844
});
826845
elem._change_attached = true;
@@ -845,33 +864,14 @@ if ( !jQuery.support.changeBubbles ) {
845864
};
846865
}
847866

848-
function simulate( type, elem, event, bubble ) {
849-
// Piggyback on a donor event to simulate a different one.
850-
// Fake originalEvent to avoid donor's stopPropagation, but if the
851-
// simulated event prevents default then we do the same on the donor.
852-
var e = jQuery.extend(
853-
new jQuery.Event(),
854-
event,
855-
{ type: type, isSimulated: true, originalEvent: {} }
856-
);
857-
if ( bubble ) {
858-
jQuery.event.trigger( e, null, elem );
859-
} else {
860-
jQuery.event.handle.call( elem, e );
861-
}
862-
if ( e.isDefaultPrevented() ) {
863-
event.preventDefault();
864-
}
865-
}
866-
867867
// Create "bubbling" focus and blur events
868868
if ( !jQuery.support.focusinBubbles ) {
869869
jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
870870

871871
// Attach a single capturing handler while someone wants focusin/focusout
872872
var attaches = 0,
873873
handler = function( event ) {
874-
simulate( fix, event.target, jQuery.event.fix( event ), true );
874+
jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
875875
};
876876

877877
jQuery.event.special[ fix ] = {

0 commit comments

Comments
 (0)