0

I have a slider that is from 1 to 5 million, somehow jquery mobile optimizes the stepping to 50000 when using the slider despite me specifying the step to 1000. is there anyway to force override this behaviour

<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>

demo here:

http://jsfiddle.net/LSGAk/3/

4

1 回答 1

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。所以我们让回合开始行动。

PS:不完全确定我写的内容,它只是快速浏览了代码,但在我看来它的行为方式是这样的。

于 2013-07-16T08:02:09.233 回答