0

ページの更新中はスライダーのアニメーションを防止したいが、プログラムの操作中は許可したい。

私はほとんどそこにいます:

// Initialise var animate as false
var animate = false;

// Jquery UI
function slider(min, max, step) {
                        $(target_slider).slider({
                            min: min,
                            max: max,
                            range: "min",
                            step: step,
// var animate set to false on load, so no animation from this guy:
                            animate: animate,
// var animate now set to true to allow animation every time slider is changed from now on:
                            var animate = true;
                            slide: function (event, ui) {
                                console.log("slider is moving!");
                                };
                            },
                        });
                    }

// Initialise slider
slider(0, 200, 0.01);

ただし、var animate を true にする 13 行目のコードは、jquery UI によって構文的に正しくないと見なされるため、変数「animate」を変更するにはどうすればよいですか?

また、JavaScript のスコープについてはまだ少し不安定です。jquery UI が変数の変更を受け入れた場合、ロジックは機能しますか? var animate が最初にグローバル スコープで宣言されているため、そうなると思いますが、間違っている場合は修正してください。

4

1 に答える 1

1

animateスライダーの初期化後に値を変更する必要があります。

...
slider(0, 200, 0.01);
animate = true;
...

また、変数を定義した後は、varキーワードを使用してアクセスする必要はありません。

更新API ドキュメントを見た後、setter メソッドを使用して、animate初期化後にプロパティを設定できます。これを試して:

function slider(min, max, step) {
    $(target_slider).slider({
        min: min,
        max: max,
        range: "min",
        step: step,
        animate: false,
        slide: function (event, ui) {
            console.log("slider is moving!");
        }
    });
}

// Initialise slider
slider(0, 200, 0.01);
$(target_slider).slider('option', 'animate', 'fast');
于 2013-08-01T17:00:43.527 に答える