0

JQuery 関数またはイベントの実行時間を計るにはどうすればよいですか? タイムアウト後にイベントや関数を実行するという意味ではありません。20秒後ではなく、20秒以内にキーイベントをキャプチャするようなものが必要です。私はいくつかのアイデアを試しましたが、思い通りに動作しません。

4

2 に答える 2

0

試す

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
    var timer = 0;

    $(function()
    {

        if(timer > -1 && timer <= 20)
        {
            timer = setTimeout(function()
            {
                timer = timer + 1;
                alert(timer);
            }, 1);
        }

    });

</script>

ループが失敗した場合は、unbindイベントまたは要件を何でも実行できます。

于 2013-03-04T08:32:21.350 に答える
0

使用できますsetInterval()

マークアップを考えると

<p>Interval: <span id="interval"></span></p>
<p>Counter: <span id="counter"></span></p>
<button id="start">Start</button>

このようなことを行うと、keyups を 20 秒間キャプチャできます

$(function(){
    var counter = 0;
    $("#start").click(function(){
        counter=0;
        var startTime = new Date().getTime() / 1000;

        $("body").on("keyup", function(){
            counter++;
            $("#counter").text(counter);
        });
        var intId = setInterval(function(){
            currentTime = new Date().getTime() / 1000;
            timeInterval = currentTime - startTime;
            $("#interval").text(timeInterval);
            if (timeInterval >= 20) {
                $("body").off("keyup");
                clearInterval(intId);
            }
        },1000);
    });
});

ここにjsFiddleがあります

于 2013-03-04T08:46:06.333 に答える