使用按钮和计时器制作报价滚筒

Posted

技术标签:

【中文标题】使用按钮和计时器制作报价滚筒【英文标题】:Making a quote roller with buttons and timer 【发布时间】:2014-03-18 06:41:43 【问题描述】:

我们正在尝试制作带有按钮和计时器的报价滚轮。我们已经走了很远,但此时按钮无法正常工作,这是一个 jsfiddle:http://jsfiddle.net/BaXXg/1/

这里是代码

var quotes = [
    "Quote1<br><br>  -  Repomeri",
    "Quote2 <br><br> - Emmi",
    "Quote3<br><br> - Taateli",
    "Quote4<br><br> - Joonas",
    "Quote5<br><br> - Eskelinen",
];

var i = 0;
var timer = null;

setInterval(function() 
    $("#slideContainer").html(quotes[i]);
    if (i == quotes.length) 
        i = 0;
     else 
        i++;
    
, 4 * 1000);


var b1 = document.getElementById('b1'),
    b2 = document.getElementById('b2'),
    b3 = document.getElementById('b3'),
    b4 = document.getElementById('b4'),
    b5 = document.getElementById('b5');


b1.onclick = function() 
    $("#slideContainer").html(quotes[i]);
    i = 0;
;

b2.onclick = function() 
    $("#slideContainer").html(quotes[i]);
    i = 1;
;

b3.onclick = function() 
    $("#slideContainer").html(quotes[i]);
    i = 2;
;

b4.onclick = function() 
    $("#slideContainer").html(quotes[i]);
    i = 3;
;

b5.onclick = function() 
    $("#slideContainer").html(quotes[i]);
    i = 4;
;

【问题讨论】:

您可以简化代码,因为您已经在使用 jQuery。看我更新的演示jsfiddle.net/Godinall/BaXXg/8你最后30行代码实际上可以用jQuery写成3行。 【参考方案1】:

我认为您必须先将作业分配给i,然后再调用html(quotes[i])。例如:

b1.onclick = function() 
    i = 0;
    $("#slideContainer").html(quotes[i]);
;

【讨论】:

【参考方案2】:

你必须在$("#slideContainer").html(quotes[i]);之前设置变量i

您也可以使用class 并减少您的代码:

HTML:

<input type="button" class="btn" value="" id="b1">
<input type="button" class="btn" value="" id="b2">
<input type="button" class="btn" value="" id="b3">
<input type="button" class="btn" value="" id="b4">
<input type="button" class="btn" value="" id="b5">

JS:

$('.btn').click(function () 
    i = $(this).attr('id').substr(1);
    i--;
    $("#slideContainer").html(quotes[i]);   
);

FIDDLE

【讨论】:

以上是关于使用按钮和计时器制作报价滚筒的主要内容,如果未能解决你的问题,请参考以下文章

如何在vue js html中将到期时间显示为报价的计时器?

我如何制作一个可重置的RxSwift计时器?

ASP.NET C# 倒计时到报价结束 - Razor 视图

为啥按下 PyQt 按钮时 matplotlib 的计时器会加快?

微信小程序使用setTimeout制作定时器的思路

如何通过在倒数计时器中按住按钮来添加值