在jquery-ui滑块内设置一个全局变量?

时间:2013-08-01 16:55:39

标签: jquery-ui

我希望在页面刷新期间阻止滑块动画,但在程序运行期间允许它。

我快到了:

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

然而,第13行上将var animate变为true的代码被jquery UI视为语法不正确,那么如何更改变量“animate”?

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

1 个答案:

答案 0 :(得分: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');