小Jquery寻呼机/滑块

时间:2013-06-10 19:32:11

标签: jquery

我一直在忙着创建一个Jquery Slider并遇到了一个不寻常的问题。我有两个主要的滑动函数叫做slideFromLeft和slideFromRight。两者都使用整数作为参数来指示它必须从右侧或左侧“滑动”哪个幻灯片编号。这一切都很完美。

现在,问题出现了:我一直在尝试添加next()和previous()函数,分别使用slideFromLeft和slideFromRight函数,即。像这样:

self.slideFromLeft(Math.max(0, self.current - 1));

在调用其中一个函数后,第一次有效,但是他们都不想第二次工作,而slideFromLeft和slideFromRight函数仍然可以正常工作。

第二次调用next()或prev()函数时遇到的控制台错误如下:

  

未捕获的TypeError:对象[object Object]的属性“next”不是a   功能

我已经创建了一个JSFiddle,因此您可以自己测试并查看结果:http://jsfiddle.net/HCzbW/1/

1 个答案:

答案 0 :(得分:0)

您使用self.nextself.prev作为存储int的函数和变量。

self.prev = 0;
...
self.next = 0;
...

self.next = function () {
    self.slideFromRight(
        Math.min(self.last, self.current + 1)
    );
}

self.prev = function () {
    self.slideFromLeft(
        Math.max(0, self.current - 1)
    );
}

这些问题出现了问题

self.slideFromLeft = function (num) {
  ...
  self.prev = self.current;
  self.next = num;
  ...
}

self.slideFromRight = function (num) {
  ...
  self.prev = self.current;
  self.next = num;
  ...
}

如果您将功能分别重命名为nextSlideprevSlide,则Slider将再次运行。

self.nextSlide = function () {
    self.slideFromRight(
        Math.min(self.last, self.current + 1)
    );
}

self.prevSlide = function () {
    self.slideFromLeft(
        Math.max(0, self.current - 1)
    );
}

和你的html到

<a href="#" onclick="list.prevSlide()">Prev</a>
<a href="#" onclick="list.nextSlide()">Next</a>

你可以在jsfiddle中看到它 http://jsfiddle.net/HCzbW/2/