Autocomplete: Refactored _response() so that requestIndex is defined closer to where it's used.

This commit is contained in:
Scott González 2013-04-25 10:59:20 -04:00
parent 64a39d9b0d
commit 947d738c0b

View File

@ -16,9 +16,6 @@
*/
(function( $, undefined ) {
// used to prevent race conditions with remote data sources
var requestIndex = 0;
$.widget( "ui.autocomplete", {
version: "@VERSION",
defaultElement: "<input>",
@ -416,21 +413,24 @@ $.widget( "ui.autocomplete", {
this.source( { term: value }, this._response() );
},
_response: function() {
var that = this,
index = ++requestIndex;
_response: (function() {
var requestIndex = 0;
return function( content ) {
if ( index === requestIndex ) {
that.__response( content );
}
return function() {
var index = ++requestIndex;
that.pending--;
if ( !that.pending ) {
that.element.removeClass( "ui-autocomplete-loading" );
}
return $.proxy(function( content ) {
if ( index === requestIndex ) {
this.__response( content );
}
this.pending--;
if ( !this.pending ) {
this.element.removeClass( "ui-autocomplete-loading" );
}
}, this );
};
},
})(),
__response: function( content ) {
if ( content ) {