jQuery: The Write Less, Do More JavaScript Library

Ticket #2223 (new bug)

Opened 7 months ago

Last modified 3 months ago

triggerHandler triggers only on the first selected element

Reported by: joern Assigned to: anonymous
Type: bug Priority: major
Milestone: 1.2.4 Component: event
Version: 1.2.2 Keywords:
Cc: Needs: Review

Description

For some reason triggerHandler triggers handlers only on the first selected element. As I see no apparent reason for that behaviour, and the docs say nothing about it, I consider it a bug.

Actually the docs say triggerHandler would reuturn a jQuery object, which it doesn't.

The obvious patch would be to add the usual each:

triggerHandler: function( type, data, fn ) {
	return this.each(function(){
		jQuery.event.trigger( type, data, this, false, fn );
	});
},

I'm rather sure there is something else behind this...

Attachments

Change History

Changed 7 months ago by scott.gonzalez

I think the behavior is intended and the docs are just misleading. triggerHandler currently returns the value returned by the handlers (for the first element). Obviously the current implementation and the suggested implementation are both useful.

I use the current implementation in the webforms plugin as:

if ($(elem).triggerHandler('invalid') !== false) {
    $.webForms.errorHandler(elem);
}

However, this could be accomplished using internal jQuery code as:

if ($.event.trigger('invalid', null, elem) !== false) {
    $.webForms.errorHandler(elem);
}

I would assume that other developers are taking advantage of the current return value as well.

Changed 3 months ago by flesler

  • owner deleted
  • component changed from core to event
  • milestone changed from 1.2.3 to 1.2.4
Note: See TracTickets for help on using tickets.