currentPosition似乎永远不会留下1?

sty*_*ler 0 javascript

我已经编写了一个小函数,它基本上将currentPosition值作为参数,如果该数字等于幻灯片的总数,并且如果它不是将值加1,不幸的是我的增量数似乎永远不会从1移动.任何人都可以告诉我哪里可能出错了?

var currentPosition = 0;
            var slideWidth = 320;
            var numberOfSlides = sliderSlides.children.length;
            console.log('Number of slides = ', numberOfSlides);

            //Remove scrollbar in js
            sliderCtn.style.overflow = 'hidden';  

            //Set .slides width equal to total width of all slides
            sliderSlides.style.width = slideWidth * numberOfSlides + 'px';                      

            // Direction click handlers
            sliderDirNext[det.clickEvent] = function(e) {               
                next(currentPosition);
                sliderSlides.style.left = slideWidth*(-currentPosition) + 'px';         
                console.log('Slide width ', slideWidth);
                stopEvent(e);
            };

 function next(currentPosition){
                    if( currentPosition === numberOfSlides ) {
                        return false;
                    } else {
                        currentPosition += 1;
                        console.log('Next current position = ', currentPosition);
                        return true;
                    }
                } 
Run Code Online (Sandbox Code Playgroud)

xan*_*ded 5

解.但是,如果您提供更多上下文,则最有可能更好一个:

window.currentPosition = 0;

function next(){
    if( currentPosition === numberOfSlides ) {
        return false;
    } else {
        currentPosition += 1;
        console.log('Next current position = ', currentPosition);
        return true;
    }
} 
Run Code Online (Sandbox Code Playgroud)

OP更新后:

只需删除next函数currentPosition参数就可以解决您的问题,因为其余的逻辑是合理的.