我意识到这个问题相当小众,应该针对github或其他地方的作者。
但是,该插件已经超过 5 年没有更新了,作为一个相对简单的插件,我正在尝试对其进行修改,以防止它在单击Previous
或时循环元素Next
。
有关工作示例,请参见此处:
https://jsfiddle.net/zwb1vr96/2/
如您所见,在Previous
按钮打开时按下按钮1
会将其变为3
.
同样,如果它打开3
并且您单击Next
,它会循环回到1
。
正如小提琴中所见,我var listlength = $("#newsticker li").length;
在插件函数中给出了一个长度变量 ( ),它告诉我列表中li
有多少列表 (或 ) 项目。
下一个修改必须在这些行内:
if(this.options.nextButton && typeof(this.options.nextButton[0]) !== 'undefined')
this.options.nextButton.click(function(e) {
this.moveNext();
this.resetInterval();
}.bind(this));
if(this.options.prevButton && typeof(this.options.prevButton[0]) !== 'undefined')
this.options.prevButton.click(function(e) {
this.movePrev();
this.resetInterval();
}.bind(this));
但我一直关注这个插件通过定义一个集合height
而不修改看不见的li
项目来工作的事实。
这是我正在尝试的:
添加一个var count = 0;
和next
按钮
this.options.nextButton.click(function(e) {
if (count == 3) { return false; }
else { count++; }
以及上一个按钮
this.options.prevButton.click(function(e) {
if (count == 0) { return false; }
else { count--; }
它在一定程度上有效——但仍然有问题,并且没有给出正确的计数来返回 false。
如何在上面的这些Previous
和Next
脚本函数中创建一个变量以了解它当前位于哪个列表项(在 jsfiddle 示例中- 1
、2
或以及如果正在显示的列表项位于,则阻止触发 Next 按钮(因此阻止上述循环功能)。3
1
3