美文网首页
setInterval 调用方法未定义问题

setInterval 调用方法未定义问题

作者: jing_bao | 来源:发表于2018-09-21 17:50 被阅读0次

    若setInterval要调用的方法写在window.onload匿名方法内,执行setInterval会报方法未定义错误。
    解决办法:将方法放到window.onload匿名方法外部或直接setInterval直接调用一个匿名函数
    例:

    如下代码会报updategetYMDhms方法没有定义的错误

    window.onload = function() {
                    var start = '2018/09/09 8:0:0';
                    var end = '2018/09/29 8:0:0'
                    var count = 0;
                    function updategetYMDhms(start, end) {
                        count += 1;
                        var date1 = new Date(start);
                        var date2 = new Date(end);
                        var s1 = date1.getTime();
                        var s2 = date2.getTime();
                        var total = (s2 - s1) / 1000 - count;
                        var day = parseInt(total / (24 * 60 * 60)); //计算整数天数
                        var afterDay = total - day * 24 * 60 * 60; //取得算出天数后剩余的秒数
                        var hour = parseInt(afterDay / (60 * 60)); //计算整数小时数
                        var afterHour = total - day * 24 * 60 * 60 - hour * 60 * 60; //取得算出小时数后剩余的秒数
                        var min = parseInt(afterHour / 60); //计算整数分
                        var afterMin = total - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60;
                        $('.underlineTime').text(day + ' 天 ' + hour + ' 时 ' + min + ' 分 ' + afterMin + ' 秒');
                    }
                    updategetYMDhms('2018/09/09 8:0:0', '2018/09/29 8:0:0')
                    setInterval("updategetYMDhms(start,end)", 1000)
    }
    

    解决方法:

    把方法放到window.onload匿名方法外

                    var start = '2018/09/09 8:0:0';
                    var end = '2018/09/29 8:0:0'
                    var count = 0;
                    function updategetYMDhms(start, end) {
                        count += 1;
                        var date1 = new Date(start);
                        var date2 = new Date(end);
                        var s1 = date1.getTime();
                        var s2 = date2.getTime();
                        var total = (s2 - s1) / 1000 - count;
                        var day = parseInt(total / (24 * 60 * 60)); //计算整数天数
                        var afterDay = total - day * 24 * 60 * 60; //取得算出天数后剩余的秒数
                        var hour = parseInt(afterDay / (60 * 60)); //计算整数小时数
                        var afterHour = total - day * 24 * 60 * 60 - hour * 60 * 60; //取得算出小时数后剩余的秒数
                        var min = parseInt(afterHour / 60); //计算整数分
                        var afterMin = total - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60;
                        $('.underlineTime').text(day + ' 天 ' + hour + ' 时 ' + min + ' 分 ' + afterMin + ' 秒');
                    }
                window.onload = function() {
                    updategetYMDhms('2018/09/09 8:0:0', '2018/09/29 8:0:0')
                    setInterval("updategetYMDhms(start,end)", 1000)
    }
    

    或者直接执行一个匿名函数

    window.onload = function() {
                    setInterval(function() {
                        count += 1;
                        var date1 = new Date(start);
                        var date2 = new Date(end);
                        var s1 = date1.getTime();
                        var s2 = date2.getTime();
                        var total = (s2 - s1) / 1000 - count;
                        var day = parseInt(total / (24 * 60 * 60)); //计算整数天数
                        var afterDay = total - day * 24 * 60 * 60; //取得算出天数后剩余的秒数
                        var hour = parseInt(afterDay / (60 * 60)); //计算整数小时数
                        var afterHour = total - day * 24 * 60 * 60 - hour * 60 * 60; //取得算出小时数后剩余的秒数
                        var min = parseInt(afterHour / 60); //计算整数分
                        var afterMin = total - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60;
                        $('.underlineTime').text(day + ' 天 ' + hour + ' 时 ' + min + ' 分 ' + afterMin + ' 秒');
                    }, 1000);
                }
    

    相关文章

      网友评论

          本文标题:setInterval 调用方法未定义问题

          本文链接:https://www.haomeiwen.com/subject/cfdznftx.html