0

jQuery UIに問題があります
。例を次に示します。http: //jsfiddle.net/zFsZV/7/ スライダーを移動すると、黒い「プログレスバー」がまったく同じように移動します(幅は同じです)が、スライダーを後ろに移動すると、 blackdivは一歩前進です。どういうわけかそれを修正することは可能ですか?スライダーのように同じレベルに黒のdivが欲しい

4

1 に答える 1

2

これを機能させる方法を確認できる唯一の方法は、JavaScriptでタイムアウトを設定して、.ui-slider-range幅に基づいて位置を更新することです。

このフィドルをチェックしてください

$(document).ready(function() {

    $('#slider').slider({
        range: "min",
        value: 1,
        min: 1,
        max: 10,
        step: 1,
        slide: function(event, ui){   
            console.log(ui);
            console.log(ui.handle.attributes[2].value);
            setTimeout(setPosition, 10);            
        }
    })
    $('#slider').slider('value');

});
function setPosition(){
    $('.color').css('width', $('.ui-slider-range').width());
}

イベントでアクセスできるUIオブジェクトを調べるslideと、要素の位置はイベントの発生後に常に設定されているように見えます。つまり、実際には正しい幅/左位置を直接設定することはできません。ただし、私の例を見ると、タイムアウトを設定すると、正しい位置が設定されます。

于 2012-09-12T11:57:26.037 に答える