Skip to content
This repository has been archived by the owner on Jan 4, 2020. It is now read-only.

Release Notes

Justin Stayton edited this page Mar 30, 2014 · 38 revisions

Starting with v1.4.0, Marco Polo adheres to Semantic Versioning.

1.8.1

March 29, 2014

  • Restored native behavior to the Home and End keys when used within the input. They now jump the cursor to the beginning and end of the input, respectively.

1.8.0

August 28, 2013

  • The data option can now be a function that returns an object, allowing for dynamic values that are computed for every request. (Thanks to Lukas Westermann for the pull request!)
  • Fixed an issue where the cursor would be moved to the end of the input after every keyup, making it difficult to edit existing input, particularly in Google Chrome. (Thanks to David North for the pull request!)
  • Fixed certain browsers (like older versions of IE) trying to display the results list when there were no results. (Thanks to Nick Ostrovsky for the pull request!)

1.7.5

January 23, 2013

  • Marco Polo is now listed on the jQuery Plugin Registry! That required a bump in version number; otherwise, no code changes in this release.

1.7.4

November 13, 2012

  • Various small code tweaks to comply with stricter JSHint options.
  • The packaged, production-ready scripts are now within the build directory. The README includes more details, but there are now minified and unminified versions of the combined and individual scripts.
  • Added installation details for Bower to the README.
  • Marco Polo now uses Grunt as its command-line build tool.

1.7.3

November 3, 2012

  • Marco Polo can now be installed with Bower, a package manager for the web! More details coming soon to the README, but use bower install jquery-marcopolo to get started.

1.7.2

October 15, 2012

  • The select event (onSelect callback) is now passed a third parameter (initial) that tells whether the selection is an initial value or not. See Setting an Initial Value.
  • Fixed a bug where a selected value that evaluated false failed to trigger the change event, even if it was different than the previous selection.

1.7.1

September 9, 2012

  • Fixed a bug where selected would cause onSelect to fire a second time if a new input value was set.
  • Fixed a bug that caused an error to be thrown in some cases when a label wasn't specified.

1.7.0

September 4, 2012

  • Added highlight option for whether to automatically highlight an item when the results list is displayed. Usually it's the first item, but it could be the previously selected item if compare is specified. Default is true, so it works the same as before being configurable.
  • Added submitOnEnter option for whether to allow the browser's default behavior of submitting the form on ENTER. Default is false, so it works the same as before being configurable.
  • The TAB key now selected the currently highlighted item. Much the same as the ENTER key, except for the default browser behavior of moving to the next focusable element.

1.6.0

June 20, 2012

  • Added full WAI-ARIA support. (Thanks to Ian Storm Taylor for the pull request!)
  • Added selected method for retrieving the currently selected data.
  • Updated jQuery UI Widget dependency to version 1.8.21.
  • Bumped the required jQuery version from 1.4.2 to 1.4.3 due to the use of $.now() internally.

1.5.1

January 30, 2012

  • Fixed an IE 7/8 bug that caused an Object expected error whenever the _trigger method was called, which is used internally to trigger events. (Thanks to Vlad Magdalin for the fix!)

1.5.0

December 14, 2011

  • Added onBlur event when the user is finished interacting with the autocomplete interface, not just the text input, which loses and gains focus on a results list mouse click.
  • Added compatibility with script loaders like RequireJS by registering as an AMD module.

1.4.1

December 8, 2011

  • The input's standard value attribute is now used as the selected value when Marco Polo is initialized. This is in addition to support for the data-selected attribute that was added in v1.4.0. See Setting an Initial Value for further details.

1.4.0

December 7, 2011

  • Added select method for programmatically changing the selected value, just as if the user clicked or keyboard selected an item from the results list.
  • The initially selected value can now be easily specified in the input's data-selected attribute, which is parsed when Marco Polo is initialized. See Setting an Initial Value for further details.
  • Fixed a bug where changing the selected option after Marco Polo was initialized did not properly toggle the label (if one was in use).
  • Fixed a bug where changing the selected option after Marco Polo was initialized did nothing with null. Now, null effectively clears the selected value (and input's value).
  • Fixed a bug where results were being cached even if the cache option was false.

1.3.2

September 1, 2011

  • Removed $input and $list parameters from all callback options. $input can be accessed through this, and $list can be accessed by calling this.marcoPolo('list').

1.3.1

August 30, 2011

  • Uncommented some code related to the onChange callback option that was accidentally committed. The callback should again work as expected.
  • Changed how callback options are triggered internally.

1.3.0

August 15, 2011

  • Completely overhauled the code to use the jQuery UI Widget factory, which provides a robust framework for developing stateful, object-oriented plugins. As a result, the code is now much cleaner, but more importantly, development will be better moving forward. jQuery UI Widget (about 3 KB of code) is now included in the minified version.
  • Added list method for getting the results list element without having to manually traverse the DOM.

1.2.5

July 7, 2011

  • The focus event now prevents additional focus events from initiating the same request while the input has focus.

1.2.4

July 6, 2011

  • Fixed a bug when the required setting was set to true that caused infinite recursion.

1.2.3

June 28, 2011

  • Fixed a bug where pushing enter when the results list was hidden still selected the currently highlighted item.
  • Fixed a bug where pushing down after selecting an item and changing the input value showed the old, stale results.
  • Code cleanup and reorganization to pass JSHint. Strict mode is now used.

1.2.2

June 25, 2011

  • Fixed a bug where the change method would not hide/show the label (if set) depending on the new input value.

1.2.1

June 16, 2011

  • Fixed regression in previous release where using up/down keyboard navigation failed to highlight the previous/next item after the list had been dismissed via ESC.

1.2.0

June 16, 2011

  • Added label option for overlabel-type functionality that automatically shows and hides the label when the input is focused/blurred.
  • Added hideOnSelect option for hiding the results list (or not) when an item is selected. Default is true, which is how it has worked prior to this option.
  • Selecting a result via mouse now returns focus back to the input. This allows easy tabbing on to the next input field.
  • Only visible items are now highlighted, which allows items to be hidden without breaking highlighting during keyboard navigation.
  • The change method now dismisses and empties the results list to prevent future stale results in case the method is called while the input has focus.

1.1.4

June 10, 2011

  • The results list is now emptied when the input is blurred. This prevents up/down keyboard navigation from showing stale results the next time the input receives focus and the input value has been cleared since the last blur. (A very edge case, but incorrect behavior nonetheless.)

1.1.3

June 8, 2011

  • Added param option for specifying the name of the query string parameter that is set with the input value. By default, this is q, which is what it was hard-coded to before.
  • The compare option now works with non-object data (such as strings) when set to true. An attribute name string can still be specified when comparing objects.

1.1.2

June 4, 2011

  • Added formatData callback for formatting the raw data returned by the ajax request.

1.1.1

June 1, 2011

  • Added the change method for programmatically changing the input value without triggering a search request.
  • The search method now gives focus to the input to allow for keyboard navigation.
  • Fixed a bug where the onChange callback would erroneously fire on input focus when the value hadn't changed.

1.1.0

May 31, 2011

  • Added a number of new event callbacks: onError, onMinChars, onNoResults, and onResults.
  • mp_busy class is now added to the input's parent element so that a busy indicator can be displayed with CSS. This is now built-in since it's a common use-case.
  • The option method now accepts multiple elements when setting a new value (or values). Getting a value still only accepts a single element.

1.0.0

May 19, 2011

  • First public release!