Как вы отображаете сообщение после перезапуска функции JavaScript? - PullRequest
0 голосов
/ 22 февраля 2011

Я хочу знать, как поместить сообщение при каждом запуске таймера.И вот мой код:

<head>
<script type="text/javascript">
var c=10;
var t;
var timer_is_on=0;

function timedCount() {
    document.getElementById('txt').value = c;
    c = c - 1;
    if (c == 0)
        c = 10;

}

function doMining() {
    if (!timer_is_on) {
        timer_is_on = true;
        t = setInterval(function () {
            timedCount();
        }, 1000);                
    }
}

</script> 

<SPAN STYLE="float:left">
<form>
<input type="button" value="Mining" onClick="doMining()">
<input type="text" id="txt">
</form>
</SPAN>

Ответы [ 2 ]

0 голосов
/ 23 февраля 2011

Вы уже перехватили это событие в своем "if (c == 0)". Просто добавьте туда дополнительный код, который вам нужен?

Вам нужно лучше определить, что значит начать все сначала. Попробуйте использовать его в своем собственном методе, чтобы вы могли работать с ним отдельно.

<script type="text/javascript">
var c=10;
var t;
var timer_is_on=0;

function timedCount() {
    document.getElementById('txt').value = c;
    c = c - 1;
    if (c == 0) 
        startOver();
}

function startOver() {
    alert("Starting Over, Fool!");
    c = 10;
    clearTimeout(t);
    timer_is_on=0;
    doMining();
}

function doMining() {
    if (!timer_is_on) {
        timer_is_on = true;
        t = setInterval(function () {
            timedCount();
        }, 1000);                
    }
}

</script> 
0 голосов
/ 23 февраля 2011

2 простых шага:

  1. Создайте место для отображения вашего сообщения (т. Е. Другого веб-элемента)
  2. В вашем условном сообщении, когда ваш счетчик достигнет 0, обновите сообщениезначение элемента

Вот пример:

<div id='message'></div>

Затем получите доступ к этому элементу и добавьте ваше сообщение или измените ваш метод с использованием обхода DOM (предпочтительно с использованием инфраструктуры JavaScript, такой как * 1012)* dojo или jquery , но вы также можете сделать это вручную):

if (c == 0) { 
    var _message = document.createTextNode("Timer has finished!");
    document.getElementById('message').appendChild(_message); 
    c = 10;
}

Кроме того, не помещайте SPAN вокруг формы.Попробуйте вместо этого "div".Span предназначены для стилевых элементов документа.

Edit: Я предполагаю, что когда вы говорите «начать заново», вы имеете в виду, когда c = 0 или таймер запускается 10 раз.,Когда он «начинается заново», это может также означать, когда метод вызывается таймером (т. Е. Каждую 1 секунду, в этом случае вы просто помещаете код обновления вверху функции)

...