2
0
mirror of https://github.com/devbridge/jQuery-Autocomplete.git synced 2024-11-22 04:45:12 +00:00

Merge pull request #816 from geoffrosen/master

Bind `this` to onHint
This commit is contained in:
Tomas Kirda 2021-01-24 15:41:03 -06:00 committed by GitHub
commit 8138252b4c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 30 additions and 20 deletions

View File

@ -95,6 +95,7 @@
serviceUrl: null,
lookup: null,
onSelect: null,
onHint: null,
width: 'auto',
minChars: 1,
maxHeight: 300,
@ -632,7 +633,7 @@
that.selectedIndex = -1;
clearTimeout(that.onChangeTimeout);
$(that.suggestionsContainer).hide();
that.signalHint(null);
that.onHint(null);
},
suggest: function () {
@ -768,19 +769,23 @@
return !foundMatch;
});
that.signalHint(bestMatch);
that.onHint(bestMatch);
},
signalHint: function (suggestion) {
var hintValue = '',
that = this;
onHint: function (suggestion) {
var that = this,
onHintCallback = that.options.onHint,
hintValue = '';
if (suggestion) {
hintValue = that.currentValue + suggestion.value.substr(that.currentValue.length);
}
if (that.hintValue !== hintValue) {
that.hintValue = hintValue;
that.hint = suggestion;
(this.options.onHint || $.noop)(hintValue);
if ($.isFunction(onHintCallback)) {
onHintCallback.call(that.element, hintValue);
}
}
},
@ -922,7 +927,7 @@
that.el.val(that.getValue(that.suggestions[index].value));
}
that.signalHint(null);
that.onHint(null);
},
onSelect: function (index) {
@ -936,7 +941,7 @@
that.el.val(that.currentValue);
}
that.signalHint(null);
that.onHint(null);
that.suggestions = [];
that.selection = suggestion;

File diff suppressed because one or more lines are too long

View File

@ -46,7 +46,7 @@ $(selector).autocomplete(options);
| Event setting | Function description |
| :--- | :--- |
| `onSearchStart` | `function (params) {}` called before Ajax request. `this` is bound to input element |
| `onHint` | `function (hint) {}` used to change input value to first suggestion automatically |
| `onHint` | `function (hint) {}` used to change input value to first suggestion automatically. `this` is bound to input element |
| `onSearchComplete` | `function (query, suggestions) {}` called after Ajax response is processed. `this` is bound to input element. `suggestions` is an array containing the results |
| `transformResult` | `function(response, originalQuery) {}` called after the result of the query is ready. Converts the result into response.suggestions format |
| `onSelect` | `function (suggestion) {}` Callback function invoked when user selects suggestion from the list. `this` inside callback refers to input HtmlElement.|

View File

@ -95,6 +95,7 @@
serviceUrl: null,
lookup: null,
onSelect: null,
onHint: null,
width: 'auto',
minChars: 1,
maxHeight: 300,
@ -632,7 +633,7 @@
that.selectedIndex = -1;
clearTimeout(that.onChangeTimeout);
$(that.suggestionsContainer).hide();
that.signalHint(null);
that.onHint(null);
},
suggest: function () {
@ -768,19 +769,23 @@
return !foundMatch;
});
that.signalHint(bestMatch);
that.onHint(bestMatch);
},
signalHint: function (suggestion) {
var hintValue = '',
that = this;
onHint: function (suggestion) {
var that = this,
onHintCallback = that.options.onHint,
hintValue = '';
if (suggestion) {
hintValue = that.currentValue + suggestion.value.substr(that.currentValue.length);
}
if (that.hintValue !== hintValue) {
that.hintValue = hintValue;
that.hint = suggestion;
(this.options.onHint || $.noop)(hintValue);
if ($.isFunction(onHintCallback)) {
onHintCallback.call(that.element, hintValue);
}
}
},
@ -922,7 +927,7 @@
that.el.val(that.getValue(that.suggestions[index].value));
}
that.signalHint(null);
that.onHint(null);
},
onSelect: function (index) {
@ -936,7 +941,7 @@
that.el.val(that.currentValue);
}
that.signalHint(null);
that.onHint(null);
that.suggestions = [];
that.selection = suggestion;