0

私が知っていること

setInterval少なくとも IE9 では、パラメータを自身に含めずにメソッドに渡すことはできません。

myInterval = setInterval('startTimer(10)',500);動作しません

一方

setInterval( function() { startTimer(10); }, 500 );動作します。

私が試したこと

    timer( $('#display-upgrade-ticker-'+response.userClubHouseDisplayId + " .display-upgrade-timer"),currentDate);

    function timer(Obj, target_date) {

        // variables for time units
        var days, hours, minutes, seconds;

        displayInterval = setInterval(function () {
            // update the tag with id "countdown" every 1 second
            var current_date = new Date().getTime();
            var seconds_left = (target_date.getTime() - current_date) / 1000;
            console.log(seconds_left);
            // do some time calculations
            days = Math.round(parseInt(seconds_left / 86400));
            seconds_left = Math.round(seconds_left % 86400);

            hours =Math.round(parseInt(seconds_left / 3600));
            seconds_left = Math.round(seconds_left % 3600);

            minutes = Math.round(parseInt(seconds_left / 60));
            seconds = Math.round(parseInt(seconds_left % 60));

            // format countdown string + set tag value
            if(hours<10) hours='0'+hours;
            if(minutes<10) minutes='0'+minutes;
            if(seconds<10) seconds='0'+seconds;

            $(Obj).html(hours+":"+minutes + ":" + seconds);

            if ( days == 0 && hours == 0 && minutes == 0 && seconds == 0 ) {
                clearInterval(displayInterval);        
            }
        },1000);
    }

私が欲しいもの

if ( days == 0 && hours == 0 && minutes == 0 && seconds == 0 )条件が満たされた後にトリガーするには、clearIntervalが必要です。setIntervalが自己完結型の場合、どうすればよいですか。

4

0 に答える 0