Skip to main content

Search and Top Navigation

#5469 closed bug (duplicate)

Opened April 01, 2010 08:34AM UTC

Closed May 19, 2010 07:42AM UTC

Last modified October 11, 2012 09:15PM UTC

jQuery UI AutoComplete 1.8 - Menu item click does not always fire

Reported by: klaptrap Owned by:
Priority: blocker Milestone:
Component: ui.autocomplete Version: 1.8
Keywords: Cc:
Blocked by: Blocking:
Description

Using version 1.8 of Jquery UI.

When using the autocomplete widget the mouse click event on the ddl menu item does not always fire. Subsequently the underlying ddl does not update.

It would appear that the menu item always responds to selection using the ENTER key but not always using the mouse click. This sadly provides a userability issue with this widget.

Sadly I have not time to solve myself.

Attachments (3)
Change History (4)

Changed April 02, 2010 01:31AM UTC by scottgonzalez comment:1

resolution: → worksforme
status: newclosed

Can't reproduce.

Changed May 19, 2010 05:53AM UTC by eirikwah comment:2

resolution: worksforme
status: closedreopened

Please consider re-opening this bug.

I am also experiencing this bug when clicking slowly. This is how to reproduce:

I have created a workaround for myself. It is to register an event-handler for "mousedown" on the ui-menu that is exactly as "click". The disadvantage with this workaround is that selection is very quick, so the end-user may be a bit surprised... The workaround is:


$.widget("ui.menu", {
	_create: function() {
		var self = this;
		this.element
			.addClass("ui-menu ui-widget ui-widget-content ui-corner-all")
			.attr({
				role: "listbox",
				"aria-activedescendant": "ui-active-menuitem"
			})
			.click(function( event ) {
				if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {
					return;
				}
				// temporary
				event.preventDefault();
				self.select( event );
			})
			.mousedown(function( event ) { // Bugfix by Eirik Wahl: Select element on mousedown (and not only on click) to do a select before blur on the autocomplete-menu (whick happens after 150 milliseconds).
				if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {
					return;
				}
				// temporary
				event.preventDefault();
				self.select( event );
			});
		this.refresh();
	},


Changed May 19, 2010 07:42AM UTC by jzaefferer comment:3

resolution: → duplicate
status: reopenedclosed

Duplicate of #5405.

Changed October 11, 2012 09:15PM UTC by scottgonzalez comment:4

milestone: TBD

Milestone TBD deleted