ScrollLeft与“if”语句不一致

时间:2014-02-19 15:39:28

标签: javascript jquery

我一直在尝试使用jQuery的<div>在这个特定页面元素的两侧创建一个由两个scrollLeft元素操作的小滑动部分。最初似乎所有东西都按预期工作 - 尽管有些人会称之为难以置信的糟糕实践,并且可能还有一些令人难以置信的原始代码。 试图使元素更容易使用我决定包含一个if语句,以便如果按钮被点击的次数比现有的图像多,则会使图像循环回到第一个。

本质上,代码的工作方式如下(每个图像的宽度为100像素)

$("#next").click(function() {
  position = position + 100;
    $("#wrap").animate({ 
        scrollLeft: ( position )
    });
});

但在更改为

时停止工作
$("#next").click(function() {
    if (positon < 300){
       position = position + 100;
       $("#wrap").animate({ 
          scrollLeft: ( position )
       });
    } else {
        loopBack();
        }
});

其中loopBack是一个将position设置为0并按照初始(工作)函数继续进行的函数。 JSHint报告代码语法本身没有任何问题,我已将值检查更改为position != 300,看看它有什么不同(没有,因为事实证明)。

可以在此处找到JSFidde:http://jsfiddle.net/ActualRealJamz/8WcUb/7/ 向后功能保持原样,以便您可以看到它最初是如何工作的,并且wrap已启用x轴滚动,因此实际上可以使用向后功能。

我真的被这里的想法所困扰,任何帮助都会在这里得到最多的赞赏。

1 个答案:

答案 0 :(得分:0)

您的代码中有拼写错误。

如果您检查控制台日志,很容易发现:

  

未捕获的ReferenceError:未定义位置

更正后的代码(假设

$("#next").click(function() {
    if (position < 300){
       position = position + 100;
       $("#wrap").animate({ 
          scrollLeft: ( position )
       });
    } else {
        loopBack();
        }
});