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

但是,jquery UI 认为第 13 行将 var animate 变为 true 的代码在语法上不正确,那么如何更改变量“animate”?

对于 javascript 的作用域,我也有点不放心。如果 jquery UI 确实接受了我的变量更改,我的逻辑会起作用吗?我假设它会因为 var animate 首先在全局范围内声明,但如果我错了,请纠正我!

4

1 回答 1

1

您可能希望animate在滑块初始化后更改 的值:

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

此外,定义变量后,您无需使用var关键字来访问它。

更新查看 API 文档后,您可以animate在初始化后使用 setter 方法设置属性。尝试这个:

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