diff --git a/src/autocomplete.js b/src/autocomplete.js index 126e930..00ddc98 100644 --- a/src/autocomplete.js +++ b/src/autocomplete.js @@ -30,6 +30,7 @@ export default class Autocomplete extends Controller { this.inputTarget.addEventListener("blur", this.onInputBlur) this.inputTarget.addEventListener("input", this.onInputChange) this.resultsTarget.addEventListener("mousedown", this.onResultsMouseDown) + this.resultsTarget.addEventListener("mouseover", this.onResultsMouseOver) this.resultsTarget.addEventListener("click", this.onResultsClick) if (this.inputTarget.hasAttribute("autofocus")) { @@ -169,6 +170,12 @@ export default class Autocomplete extends Controller { }, { once: true }) } + onResultsMouseOver = (event) => { + if (!(event.target instanceof Element)) return; + const selected = event.target.closest(optionSelector); + if (selected) this.select(selected); + } + onInputChange = () => { this.element.removeAttribute("value") if (this.hasHiddenTarget) this.hiddenTarget.value = ""