在cleartimeout之后放回我的settimeout的值

时间:2012-10-24 18:57:53

标签: jquery

我想点击按setTimeout后点按r2按钮,将r1的值重新设置为30,该按钮调用clearTimeout

我尝试了一些东西,但它将数字重新设置为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 } ?>

1 个答案:

答案 0 :(得分:0)

r2的点击处理程序中,您有:

var numb = 30;
var numba = 100;

这些将创建新的局部变量,并且不会触及全局变量。删除此处的var以使其更新全局变量。