我有一个1到5百万的滑块,不管怎样,jquery mobile在使用滑块时优化步进为50000,尽管我指定步骤为1000.无论如何都要强制覆盖此行为
<form>
<label for="slider-1">Slider:</label>
<input type="range" name="slider-1" id="slider-1" min="0" max="5000000" value="10" step="10" />
</form>
演示:
答案 0 :(得分:1)
如果我没弄错的话,除非您愿意更改jQm的源代码,否则不能覆盖它。
作为该行为来源的行位于函数refresh中。更确切地说是以下块:
if ( typeof val === "object" ) {
data = val;
// a slight tolerance helped get to the ends of the slider
tol = 8;
left = this.slider.offset().left;
width = this.slider.width();
pxStep = width/((max-min)/step);
if ( !this.dragging ||
data.pageX < left - tol ||
data.pageX > left + width + tol ) {
return;
}
if ( pxStep > 1 ) {
percent = ( ( data.pageX - left ) / width ) * 100;
} else {
percent = Math.round( ( ( data.pageX - left ) / width ) * 100 );
}
}
在使用鼠标/点击进行交互的情况下,val是一个对象,在你的情况下,pxStep低于1.所以我们有一轮实现。
P.S:不完全确定我写的是什么,它只是快速浏览了一下代码,但在我看来它的表现就是这样。