如何在JS中更新变量

时间:2015-01-14 13:45:10

标签: javascript ajax

如何从功能更新变量? 我有这个。但这两个变量仍然是" 0"在" updateFilter()"之后。 如果没有运行" loadAjax(var1,var2)"我怎么能这样做呢?从滑块功能?

var var1 = 0,
    var2 = 0;

$("#slider").slider({
    // options...
    stop: function( event, ui ) {
        var var1 = ui.values[ 0 ], // <- changes on move
            var2 = ui.values[ 1 ]; // <- changes on move
        updateFilter();
    }
});

function updateFilter() {
    loadAjax(var1, var2);
}

抱歉我的英文

2 个答案:

答案 0 :(得分:1)

代码问题是您定义了在全局范围中定义的相同变量

var var1 = 0,
    var2 = 0;

//in function below you are redefining var1 and var2 varible please dont do that 
 stop: function( event, ui ) {
        var var1 = ui.values[ 0 ], // <- changes on move
            var2 = ui.values[ 1 ]; // <- changes on move
        updateFilter();

而不是上面的代码停止方法应该是

 stop: function( event, ui ) {
            var1 = ui.values[ 0 ], // <- changes on move
            var2 = ui.values[ 1 ]; // <- changes on move
        updateFilter();

为什么不直接将varible传递给函数

updateFilter(var1, var2);


function updateFilter(var1, var2) {
    loadAjax(var1, var2);
}

答案 1 :(得分:0)

http://jsfiddle.net/kcg1hmsu/

您的值为0,因为您正在隐藏全局变量,您只需删除停止函数中的 var

$("#slider").slider({
    // options...
    stop: function( event, ui ) {
         var1 = ui.values[ 0 ], // <- changes on move
         var2 = ui.values[ 1 ]; // <- changes on move
         console.log(var1, var2);
        updateFilter();
    }
});