diff --git a/select2.js b/select2.js index cda250a3..0dfca87c 100644 --- a/select2.js +++ b/select2.js @@ -715,6 +715,9 @@ the specific language governing permissions and limitations under the Apache Lic installFilteredMouseMove(this.results); this.dropdown.on("mousemove-filtered touchstart touchmove touchend", resultsSelector, this.bind(this.highlightUnderEvent)); + this.dropdown.on("touchend", resultsSelector, this.bind(this.selectHighlighted)); + this.dropdown.on("touchmove", resultsSelector, this.bind(this.touchMoved)); + this.dropdown.on("touchstart touchend", resultsSelector, this.bind(this.clearTouchMoved)); installDebouncedScroll(80, this.results); this.dropdown.on("scroll-debounced", resultsSelector, this.bind(this.loadMoreIfNeeded)); @@ -1483,6 +1486,14 @@ the specific language governing permissions and limitations under the Apache Lic this.results.find(".select2-highlighted").removeClass("select2-highlighted"); }, + touchMoved: function() { + this._touchMoved = true; + }, + + clearTouchMoved: function() { + this._touchMoved = false; + }, + // abstract countSelectableResults: function() { return this.findHighlightableChoices().length; @@ -1715,6 +1726,10 @@ the specific language governing permissions and limitations under the Apache Lic // abstract selectHighlighted: function (options) { + if (this._touchMoved) { + this.clearTouchMoved(); + return; + } var index=this.highlight(), highlighted=this.results.find(".select2-highlighted"), data = highlighted.closest('.select2-result').data("select2-data");