WordPress.org

Make WordPress Core

Opened 3 years ago

Last modified 2 years ago

#18518 new enhancement

suggest.js: don't store the URL in the options object

Reported by: scribu Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version:
Component: General Keywords: has-patch
Focuses: Cc:

Description

...because it prevents re-using the same instance for different URLs:

var suggest_args = {
	multiple     : true,
	delimiter    : ',',
	resultsClass : 'qc-suggest-results',
	selectClass  : 'qc-suggest-over',
	matchClass   : 'qc-suggest-match',
};

$( '#ticket-assign input' ).suggest( QC_L10N.ajaxurl + '?action=qc-user-search', suggest_args );

$( '#ticket-tags input' ).suggest( QC_L10N.ajaxurl + '?action=ajax-tag-search&tax=post_tag', suggest_args );

With the above code, both inputs will look for items in the same URL: the second one.

Attached patch fixes this.

Attachments (1)

18518.diff (1.4 KB) - added by scribu 3 years ago.

Download all attachments as: .zip

Change History (5)

scribu3 years ago

comment:1 scribu3 years ago

  • Summary changed from Don't store the URL in the options object to suggest.js: don't store the URL in the options object

comment:2 GaryJ3 years ago

Will that extra argument be backwards compatible?

Could you add some code such that if source is an object rather than a string (i.e. only two arguments passed in), that source = options.source?

comment:3 scribu3 years ago

That extra argument only affects the internal constructor function, which shouldn't be used directly.

If it's really necessary, sure, you could check if it's an object vs. a string or check the number of arguments passed.

comment:4 sorich872 years ago

  • Type changed from defect (bug) to enhancement
Note: See TracTickets for help on using tickets.