0

1.9.2 でデフォルトの ui-slider を使用すると、2 つのハンドルバーが衝突したときに小さな問題が発生し、右側のハンドルバーをドラッグできなくなります。

ここを参照してください: http://jqueryui.com/slider/#range

2 つのハンドルバーを合わせてから、より高い値を上げようとしますが、うまくいきません。

次に、この投稿を見つけました。

https://stackoverflow.com/a/4254932/1905754

これは解決策ですが、1.8.6 に対するものなので、1.9.2 で編集するコード行が見つかりません。1.9.2 に似た解決策があるかどうかは誰にもわかりませんか?

ありがとう。

間違った英語で申し訳ありません。

4

3 に答える 3

0

このコード _mouseCapture を置き換えることを提案します

this.handles.each(function( i ) {
        var thisDistance = Math.abs( normValue - that.values(i) );
        if (( distance > thisDistance ) ||
            ( distance === thisDistance &&
                (i === that._lastChangedValue || that.values(i) === o.min ))) {
            distance = thisDistance;
            closestHandle = $( this );
            index = i;
        }
    });

this.handles.each(function( i ) {
        if (event.target == that.handles[i]) {
            index = i;
            closestHandle = $( this );
        }
    });
于 2016-08-03T12:40:55.293 に答える
0

jquery.ui.js (関数 _mouseCapture、12313 行目) で以下のコードを見つけてください。

        // workaround for bug #3736 (if both handles of a range are at 0,
        // the first is always used as the one with least distance,
        // and moving it is obviously prevented by preventing negative ranges)
        if( o.range === true && this.values(1) === o.min ) {
            index += 1;
            closestHandle = $( this.handles[index] );
        }

        // my fix
        if( o.range === true && this.values(1) === this.values(0) ) {
            if(normValue <= this.values(0)){
                index = 0;
            }
            else {
                index = 1;
            }
            closestHandle = $( this.handles[index] );
        }
        // end of my fix
于 2012-12-30T15:28:12.010 に答える