Event: Copy detail property to jQuery.Event on native events

Fixes gh-1867
This commit is contained in:
Dave Methvin 2014-12-03 15:56:50 -05:00
parent 80022c81ce
commit d9ed166c86
2 changed files with 20 additions and 1 deletions

View File

@ -460,7 +460,7 @@ jQuery.event = {
},
// Includes some event props shared by KeyEvent and MouseEvent
props: ( "altKey bubbles cancelable ctrlKey currentTarget eventPhase " +
props: ( "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " +
"metaKey relatedTarget shiftKey target timeStamp view which" ).split(" "),
fixHooks: {},

View File

@ -2381,6 +2381,25 @@ test("hover event no longer special since 1.9", function() {
.off("hover");
});
test( "event object properties on natively-triggered event", function() {
expect( 3 );
var link = document.createElement( "a" ),
$link = jQuery( link ),
evt = document.createEvent( "MouseEvents" );
// IE9+ requires element to be in the body before it will dispatch
$link.appendTo( "body" ).on( "click", function( e ) {
// Not trying to assert specific values here, just ensure the property exists
equal( "detail" in e, true, "has .detail" );
equal( "cancelable" in e, true, "has .cancelable" );
equal( "bubbles" in e, true, "has .bubbles" );
});
evt.initEvent( "click", true, true );
link.dispatchEvent( evt );
$link.off( "click" ).remove();
});
test("fixHooks extensions", function() {
expect( 2 );