jquery使用引用变量

时间:2016-03-01 13:45:08

标签: javascript jquery

我引用的变量不断重置为0,为什么?每个部分都有一组Previous和Next按钮,最初它们工作正常,但当我返回到一个部分时,该部分的计数器设置为0.它应该保留它之前设置的数字。提前致谢。这不是正在使用的实际代码,但它演示了这个问题(我希望)

var currentPageIndex = null;
var section1_count = 0;
var section2_count = 0;
var section3_count = 0;

function checkSectionPage( value ){
    switch(value){
        case "section1":
            currentPageIndex= section1_count;
            break;
        case "section2":
            currentPageIndex= section2_count;
            break;
        case "section3":
            currentPageIndex= section3_count;
            break;
    }
}
$('.slidePrevious').click(function(){
    checkSectionPage($(this).parent().attr('id'));
    currentPageIndex--;
});
$('.slideNext').click(function(){
    checkSectionPage($(this).parent().attr('id'));
    currentPageIndex++;
});

2 个答案:

答案 0 :(得分:1)

您永远不会更新#_count部分。将currentPageIndex设置为该部分时,部分编号不仅会增加。您需要手动更新它。

做这样的事情:

var activeSection = "section1";
var sects = {
    "section1" : 0,
    "section2" : 0,
    "section3" : 0
};

$('.slidePrevious').click(function(){
    sects[$(this).parent().attr('id')]--;
});
$('.slideNext').click(function(){
    sects[$(this).parent().attr('id')]--;
});

答案 1 :(得分:0)

你没有增加/减少你认为的是什么 你想要这样的东西:

currentPageIndex = "section1_count";
 ...

window[currentPageIndex]++;

(裸vars,"全局变量",在浏览器上下文中实际上是window对象中的字段)

或者将你的计数移动到一个对象(比如@ pascarello的回答),或者将这些计数移动到一个数组中:

var pageIndexes = [ 0, 0, 0 ];

which = 1;
 ...

pageIndexes[which]++;