下一个功能第一次不工作

时间:2012-09-26 07:17:04

标签: javascript html html5 function

以下是我遇到问题的CODE

让我简要解释一下这个问题。 html代码包含许多幻灯片,以便在按下箭头键和鼠标滚动时幻灯片将前后移动。

问题是当第一次按下箭头键时,其中的下一个功能不起作用。

但是当我使用滚动时,下一个功能开始执行,之后当我单击左箭头时它会起作用。

但它第一次不起作用。问题是什么。?我该如何解决?

这是下一个功能:

next: function() {
            if (!this._slides[this.current-1].buildNext()) {
              this.current = Math.min(this.current + 1, this._slides.length);
              this._update();
            }

以下是调用它的代码:

handleWheel: function(e) {
            var delta = 0;
            if (e.wheelDelta) {
              delta = e.wheelDelta/120;
              if (isOpera) {
                delta = -delta;
              }
            } else if (e.detail) {
              delta = -e.detail/3;
            }

            if (delta > 0 ) {
              this.prev();
              return;
            }
            if (delta < 0 ) {
              this.next();
              return;
            }
          },
          handleKeys: function(e) {
            if (/^(input|textarea)$/i.test(e.target.nodeName) ||
                e.target.isContentEditable) {
              return;
            }
            switch (e.keyCode) {
              //case 37: // left arrow
                //this.prev(); break;
              case 39: // right arrow
              case 32: // space
                this.next(); break;
              case 50: // 2
                this.showNotes(); break;
              case 51: // 3
                this.switch3D(); break;
            }
          }

1 个答案:

答案 0 :(得分:2)

这是if条件是问题的代码

   next: function() {
                if (!this._slides[this.current-1].buildNext()) {
                  this.current = Math.min(this.current + 1, this._slides.length);
                  this._update();
                }
}

这是编辑好的代码

next: function() {

              this.current = Math.min(this.current + 1, this._slides.length);
              this._update();
            }