Я использую плагин jQuery Simple Slider (fiddle here), но на сенсорных устройствах невозможно перетащить дескриптор значения диапазона.jQuery Простой слайдер не отвечает на события касания
Я попытался отредактировать часть кода из simple-slider.js ниже, заменив «mousedown, mousemove и mouseup» соответствующими значениями касания «touchstart/move/end», но это не сработало.
Как я могу заставить это работать на сенсорных устройствах?
this.track.bind("mousedown touchstart", function (e) {
return i.trackEvent(e)
}), this.settings.highlight && this.highlightTrack.bind("mousedown touchstart", function (e) {
return i.trackEvent(e)
}), this.dragger.bind("mousedown touchstart", function (e) {
if (e.which !== 1) return;
return i.dragging = !0, i.dragger.addClass("dragging"), i.domDrag(e.pageX, e.pageY), !1
}), e("body").bind("mousemove touchmove", function (t) {
if (i.dragging) return i.domDrag(t.pageX, t.pageY), e("body").css({
cursor: "pointer"
})
}).bind("mouseup touchend", function (t) {
if (i.dragging) return i.dragging = !1, i.dragger.removeClass("dragging"), e("body").css({
cursor: "auto"
})
}), this.pagePos = 0, this.input.val() === "" ? (this.value = this.getRange().min, this.input.val(this.value)) : this.value = this.nearestValidValue(this.input.val()), this.setSliderPositionFromValue(this.value), r = this.valueToRatio(this.value), this.input.trigger("slider:ready", {
value: this.value,
ratio: r,
position: r * this.slider.outerWidth(),
el: this.slider
}
Вот ссылка на информацию плагина: http://loopj.com/jquery-simple-slider/