Event: Allow constructing a jQuery.Event without a target

Fixes gh-3139
Closes gh-3140
This commit is contained in:
Dave Methvin
2016-06-02 18:33:47 -04:00
parent 73bf35ecf3
commit 2df590e4ec
2 changed files with 10 additions and 1 deletions

View File

@@ -527,7 +527,7 @@ jQuery.Event = function( src, props ) {
// Create target properties
// Support: Safari <=6 - 7 only
// Target should not be a text node (#504, #13143)
this.target = ( src.target.nodeType === 3 ) ?
this.target = ( src.target && src.target.nodeType === 3 ) ?
src.target.parentNode :
src.target;

View File

@@ -2736,6 +2736,15 @@ QUnit.test( ".off() removes the expando when there's no more data", function( as
}
} );
QUnit.test( "jQuery.Event( src ) does not require a target property", function( assert ) {
assert.expect( 2 );
var event = jQuery.Event( { type: "offtarget" } );
assert.equal( event.type, "offtarget", "correct type" );
assert.equal( event.target, undefined, "no target" );
} );
QUnit.test( "preventDefault() on focusin does not throw exception", function( assert ) {
assert.expect( 1 );