Javascript 不同段落的Js setInterval不起作用

Javascript 不同段落的Js setInterval不起作用,javascript,php,jquery,html,setinterval,Javascript,Php,Jquery,Html,Setinterval,我想为每个段落运行不同的计时器。但不幸的是,它是按照最后一段进行工作的。该函数应为每个段落分别运行。这是我的密码 $(“.set_timer”)。每个(函数(){ setTimer($(this).data(“创建的时间”),$(this)); }); 函数setTimer(日期开始,ele){ countDownDate=新日期(dateStart).getTime(); x=设置间隔(函数(){ //获取今天的日期和时间 现在=新日期().getTime(); //找出现在和倒计时日期之间

我想为每个段落运行不同的计时器。但不幸的是,它是按照最后一段进行工作的。该函数应为每个段落分别运行。这是我的密码

$(“.set_timer”)。每个(函数(){
setTimer($(this).data(“创建的时间”),$(this));
});
函数setTimer(日期开始,ele){
countDownDate=新日期(dateStart).getTime();
x=设置间隔(函数(){
//获取今天的日期和时间
现在=新日期().getTime();
//找出现在和倒计时日期之间的距离
距离=倒计时日期-现在;
//天、小时、分钟和秒的时间计算
天数=数学楼层(距离/(1000*60*60*24));
小时=数学楼层((距离%(1000*60*60*24))/(1000*60*60));
分钟=数学楼层((距离%(1000*60*60))/(1000*60));
秒=数学楼层((距离%(1000*60))/1000);
//在id=“demo”的元素中输出结果
ele.html(天+天+小时+小时+分钟+米+秒+秒);
//如果倒计时结束,写一些文字
如果(距离<0){
净间隔(x);
ele.html(“计时器已完成”);
}
}, 1000);
}


由于所有变量都是在全局范围内定义的,因此它是预期的。然后在本地范围内定义

$(“.set_timer”)。每个(函数(){
setTimer($(this).data(“创建的时间”),$(this));
});
函数setTimer(日期开始,ele){
让countDownDate=新日期(dateStart).getTime();
设x=setInterval(函数(){
//获取今天的日期和时间
现在让我们=new Date().getTime();
//找出现在和倒计时日期之间的距离
让距离=倒计时日期-现在;
//天、小时、分钟和秒的时间计算
让天数=数学楼层(距离/(1000*60*60*24));
让小时数=数学楼层((距离%(1000*60*60*24))/(1000*60*60));
分钟=数学楼层((距离%(1000*60*60))/(1000*60));
设秒数=数学楼层((距离%(1000*60))/1000);
//在id=“demo”的元素中输出结果
ele.html(天+天+小时+小时+分钟+米+秒+秒);
//如果倒计时结束,写一些文字
如果(距离<0){
净间隔(x);
ele.html(“计时器已完成”);
}
}, 1000);
}


只需将一个
var
添加到
倒计时日期=新日期(dateStart).getTime()

就这样吧

 var countDownDate = new Date(dateStart).getTime();
 .
 .
 .
函数设置计时器(日期开始,ele){
countDownDate=新日期(dateStart).getTime();
x=设置间隔((函数(倒计时日期){
//获取今天的日期和时间
返回函数(){
现在=新日期().getTime();
//找出现在和倒计时日期之间的距离
距离=倒计时日期-现在;
//天、小时、分钟和秒的时间计算
天数=数学楼层(距离/(1000*60*60*24));
小时=数学楼层((距离%(1000*60*60*24))/(1000*60*60));
分钟=数学楼层((距离%(1000*60*60))/(1000*60));
秒=数学楼层((距离%(1000*60))/1000);
//在id=“demo”的元素中输出结果
ele.html(天+天+小时+小时+分钟+米+秒+秒);
//如果倒计时结束,写一些文字
如果(距离<0){
净间隔(x);
ele.html(“计时器已完成”);
}
}
})(倒计时),1000);

当所有变量都是全局变量时,就会发生这种情况。请输入一些
var
关键字。请在代码中添加一些解释。顺便说一句,这项工作需要1
function setTimer(dateStart, ele) {
    countDownDate = new Date(dateStart).getTime();
    x = setInterval((function (countDownDate) {
            // Get todays date and time
           return function(){
                now = new Date().getTime();
                // Find the distance between now an the count down date
                distance = countDownDate - now;
                // Time calculations for days, hours, minutes and seconds
                days = Math.floor(distance / (1000 * 60 * 60 * 24));
                hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
                minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
                seconds = Math.floor((distance % (1000 * 60)) / 1000);

                // Output the result in an element with id="demo"
                ele.html(days + "d " + hours + "h " + minutes + "m " + seconds + "s ");
                // If the count down is over, write some text 
                if (distance < 0) {
                    clearInterval(x);
                    ele.html("TIMER COMPLETED");
                }
           }
        })(countDownDate), 1000);