如何使用Ajax添加多个计时器

时间:2018-04-14 17:56:18

标签: javascript jquery html css ajax

正如您在图片中看到的那样,每当有人进入输入框时,我都会使用jquery添加新的li项目。

然而,

我还希望它在字符串的左边添加一个2小时倒数计时器。我已经多次尝试但是我无法生产新的计时器。

例如,如果我说约翰......那么约翰将有一个2小时的计时器。如果我等了10分钟后再说#34; pete"。现在,约翰将有一个1:50米的计时器,皮特将有2个小时,依此类推。

这是我到目前为止所做的。

Example of 1

Example of 2

<div class="container">

<form id="myform" action="whatever.php">

<input id="in" type="text" placeholder="Serial"/>
<input type="submit" />
</form>

<div class="results">
<ul class="list">
</ul>
</div>

</div>

<script>
     (function($){
$('#myform').submit(function(e){
    var val = $(this).find('#in').val();
    $('ul.list').append('<li>' + val + '</li>');
    e.preventDefault();
});
})(jQuery);
</script>

1 个答案:

答案 0 :(得分:0)

this answer应用于您的代码:

var twoHours = 60 * 60 * 2;

(function($){
	$('#formbutton').click(function(e){
    var val = $('#in').val();
    var counter = $('<span>');
    var item = $('<li>').text(val + ":").append(counter);
    $('ul.list').append(item);
    startTimer(twoHours, counter[0]);
	});
})(jQuery);

function startTimer(duration, display) {
    var timer = duration, hours, minutes, seconds;
    var intervalId = setInterval(function () {
        hours = parseInt(timer / 3600, 10);
        minutes = parseInt((timer % 3600) / 60, 10);
        seconds = parseInt(timer % 60, 10);

        hours = hours < 10 ? "0" + hours : hours;
        minutes = minutes < 10 ? "0" + minutes : minutes;
        seconds = seconds < 10 ? "0" + seconds : seconds;

        display.textContent = hours + ":" +  minutes + ":" + seconds;

        if (--timer < 0) {
            clearInterval(intervalId);
        }
    }, 1000);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">

<form id="myform" action="#">

<input id="in" type="text" placeholder="Serial"/>
<button id="formbutton">Submit</button>
</form>

<div class="results">
<ul class="list">
</ul>
</div>

</div>