// jQuery.Event object
e[expando] ? e :
// Object literal
- jQuery.extend( new jQuery.Event(type), e ) :
+ jQuery.extend( jQuery.Event(type), e ) :
// Just the event type (string)
- new jQuery.Event(type);
+ jQuery.Event(type);
e.target = e.target || elem;
e.currentTarget = elem;
// store a copy of the original event object
// and "clone" to set read-only properties
var originalEvent = event;
- event = new jQuery.Event( originalEvent );
+ event = jQuery.Event( originalEvent );
for ( var i = this.props.length, prop; i; ){
prop = this.props[ --i ];
};
jQuery.Event = function( src ){
+ // Allow instantiation without the 'new' keyword
+ if( !this.preventDefault )
+ return new jQuery.Event(src);
+
// Event object
if( src && src.type ){
this.originalEvent = src;
});
test("trigger(event, [data], [fn])", function() {
- expect(67);
+ expect(69);
var handler = function(event, a, b, c) {
equals( event.type, "click", "check passed data" );
// Triggers 8
equals( $elem.triggerHandler("click", [1, "2", "abc"], handler2), false, "Verify handler response" );
+ var eventObj = jQuery.Event("noNew");
+
+ ok( eventObj != window, "Instantiate jQuery.Event without the 'new' keyword" );
+ equals( eventObj.type, "noNew", "Verify its type" );
+
// Build fake click event to pass in
- var eventObj = new jQuery.Event("click");
+ eventObj = new jQuery.Event("click");
// Trigger only the handlers (no native), with external event obj
// Triggers 5