2

を呼び出すボタンをクリックした後setTimeout、ボタンをクリックすると、自分の値を30に戻したいです。r2r1clearTimeout

何か試してみましたが、30に戻してから、以前の数に戻ります。

コードは次のとおりです。

JS

$(document).ready(function () {
    var numb = 30;
    var numba = 100;
    var timer = null;

    function comptage() {
        timer = setTimeout(comptage, 1000);
        $('#test').html(numb);
        $("#progressbar").progressbar({
            value: numba
        });
        numb--;
        numba = numba - (numba / numb);
        if(numb < 0) {
            numb = 0;
            numba = 0;
        }
    };
    comptage();
    $("#r1").click(function () {
        clearTimeout(timer);
    });
    $("#r2").click(function () {
        timer = setTimeout(comptage, 1000);
        var numb = 30;
        var numba = 100;
        $('#test').html(numb);
        $("#progressbar").progressbar({
            value: numba
        });
        numb--;
        numba = numba - (numba / numb);
    });
});

HTML

<div id="r1">bouton desactiver</div>
<div id="r2">bouton réactiver</div>
<div id ="affichage_point">
    <div id="bardivs">
        <div id="progressbar"></div>
        <div id="test"></div>
    </div>
</div>
<?php if (isset($_SESSION['timer'])){ ?>
    <div id ="r6">
        <?php echo $_SESSION['timer'] ?>
    </div>
    <br/>
<?php } ?>
4

1 に答える 1

0

のクリックハンドラにはr2、次のものがあります。

var numb = 30;
var numba = 100;

これらは新しいローカル変数を作成し、グローバル変数には影響しません。ここを削除しvarて、グローバル変数を更新します。

于 2012-10-24T19:12:02.683 に答える