@@ -586,6 +586,25 @@ jQuery.event = {
586
586
}
587
587
}
588
588
}
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
+ }
589
608
}
590
609
} ;
591
610
@@ -766,7 +785,7 @@ if ( !jQuery.support.submitBubbles ) {
766
785
jQuery . event . add ( form , "submit._submit" , function ( event ) {
767
786
// Form was submitted, bubble the event up the tree
768
787
if ( this . parentNode ) {
769
- simulate ( "submit" , this . parentNode , event , true ) ;
788
+ jQuery . event . simulate ( "submit" , this . parentNode , event , true ) ;
770
789
}
771
790
} ) ;
772
791
form . _submit_attached = true ;
@@ -807,7 +826,7 @@ if ( !jQuery.support.changeBubbles ) {
807
826
jQuery . event . add ( this , "click._change" , function ( event ) {
808
827
if ( this . _just_changed ) {
809
828
this . _just_changed = false ;
810
- simulate ( "change" , this , event , true ) ;
829
+ jQuery . event . simulate ( "change" , this , event , true ) ;
811
830
}
812
831
} ) ;
813
832
}
@@ -820,7 +839,7 @@ if ( !jQuery.support.changeBubbles ) {
820
839
if ( rformElems . test ( elem . nodeName ) && ! elem . _change_attached ) {
821
840
jQuery . event . add ( elem , "change._change" , function ( event ) {
822
841
if ( this . parentNode && ! event . isSimulated ) {
823
- simulate ( "change" , this . parentNode , event , true ) ;
842
+ jQuery . event . simulate ( "change" , this . parentNode , event , true ) ;
824
843
}
825
844
} ) ;
826
845
elem . _change_attached = true ;
@@ -845,33 +864,14 @@ if ( !jQuery.support.changeBubbles ) {
845
864
} ;
846
865
}
847
866
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
-
867
867
// Create "bubbling" focus and blur events
868
868
if ( ! jQuery . support . focusinBubbles ) {
869
869
jQuery . each ( { focus : "focusin" , blur : "focusout" } , function ( orig , fix ) {
870
870
871
871
// Attach a single capturing handler while someone wants focusin/focusout
872
872
var attaches = 0 ,
873
873
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 ) ;
875
875
} ;
876
876
877
877
jQuery . event . special [ fix ] = {
0 commit comments