我一直在忙着创建一个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/
答案 0 :(得分:0)
您使用self.next
和self.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;
...
}
如果您将功能分别重命名为nextSlide
和prevSlide
,则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/