@@ -709,8 +709,7 @@ if ( !jQuery.support.submitBubbles ) {
709709 type = elem . type ;
710710
711711 if ( ( type === "submit" || type === "image" ) && jQuery ( elem ) . closest ( "form" ) . length ) {
712- e . liveFired = undefined ;
713- return trigger ( "submit" , this , arguments ) ;
712+ trigger ( "submit" , this , arguments ) ;
714713 }
715714 } ) ;
716715
@@ -719,8 +718,7 @@ if ( !jQuery.support.submitBubbles ) {
719718 type = elem . type ;
720719
721720 if ( ( type === "text" || type === "password" ) && jQuery ( elem ) . closest ( "form" ) . length && e . keyCode === 13 ) {
722- e . liveFired = undefined ;
723- return trigger ( "submit" , this , arguments ) ;
721+ trigger ( "submit" , this , arguments ) ;
724722 }
725723 } ) ;
726724
@@ -783,7 +781,7 @@ if ( !jQuery.support.changeBubbles ) {
783781 if ( data != null || val ) {
784782 e . type = "change" ;
785783 e . liveFired = undefined ;
786- return jQuery . event . trigger ( e , arguments [ 1 ] , elem ) ;
784+ jQuery . event . trigger ( e , arguments [ 1 ] , elem ) ;
787785 }
788786 } ;
789787
@@ -797,7 +795,7 @@ if ( !jQuery.support.changeBubbles ) {
797795 var elem = e . target , type = elem . type ;
798796
799797 if ( type === "radio" || type === "checkbox" || elem . nodeName . toLowerCase ( ) === "select" ) {
800- return testChange . call ( this , e ) ;
798+ testChange . call ( this , e ) ;
801799 }
802800 } ,
803801
@@ -809,7 +807,7 @@ if ( !jQuery.support.changeBubbles ) {
809807 if ( ( e . keyCode === 13 && elem . nodeName . toLowerCase ( ) !== "textarea" ) ||
810808 ( e . keyCode === 32 && ( type === "checkbox" || type === "radio" ) ) ||
811809 type === "select-multiple" ) {
812- return testChange . call ( this , e ) ;
810+ testChange . call ( this , e ) ;
813811 }
814812 } ,
815813
@@ -848,8 +846,18 @@ if ( !jQuery.support.changeBubbles ) {
848846}
849847
850848function trigger ( type , elem , args ) {
851- args [ 0 ] . type = type ;
852- return jQuery . event . handle . apply ( elem , args ) ;
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+ // Don't pass args or remember liveFired; they apply to the donor event.
853+ var event = jQuery . extend ( { } , args [ 0 ] ) ;
854+ event . type = type ;
855+ event . originalEvent = { } ;
856+ event . liveFired = undefined ;
857+ jQuery . event . handle . call ( elem , event ) ;
858+ if ( event . isDefaultPrevented ( ) ) {
859+ args [ 0 ] . preventDefault ( ) ;
860+ }
853861}
854862
855863// Create "bubbling" focus and blur events
0 commit comments