jQuery: The Write Less, Do More JavaScript Library

Ticket #2140 (closed bug: fixed)

Opened 4 months ago

Last modified 4 months ago

jQuery.event.trigger bug in Opera when using extra parameter

Reported by: scott.gonzalez Assigned to: anonymous
Type: bug Priority: major
Milestone: 1.2.2 Component: event
Version: 1.2.1 Keywords: event trigger opera
Cc: Needs: Review

Description

When the extra parameter is used in jQuery.event.trigger and there is no default event for the type and the element does not have "handle" data, the event fails in Opera.

The problem occurs because val is undefined when this line is executed: var ret = extra.apply( elem, data.concat( val ) );

This change fixes the problem:

var ret = extra.apply( elem, data.concat( val false ) );

I'm not too familiar with the internal event code, so I'm not sure if that is an appropriate default value. I tried using null, but that causes the error as well.

I came across this problem using the Droppable plugin with a callback (drop, over and out all cause the problem).

Attachments

Change History

Changed 4 months ago by scott.gonzalez

Oops, the WikiFormatting mangled the code, that should have been:

var ret = extra.apply( elem, data.concat( val || false ) );

Perhaps a cleaner solution is:

var ret = extra.apply( elem, val !== undefined ? data.concat( val ) : data );

Changed 4 months ago by john

  • status changed from new to closed
  • resolution set to fixed

Fixed in SVN rev [4440].

Note: See TracTickets for help on using tickets.