我如何 return 来自 javascript 倒计时方法的布尔值
How can I return a Boolean from a countdown method in javascript
所以我正在使用这个非常容易使用的 javascript 倒计时插件
它为我提供了一种方法,让我可以像这样设置特定时间的倒计时:
$('#countdown').countdown('2015/12/25', function(event) {
$(this).html(event.strftime('<div class="days">%D</div> <div class="hours">%H</div> <div class="mins">%M</div> <div class="secs">%S</div>'));
});
目标:
我倒计时工作正常,现在我想在特定日期显示特定图片。 (为了这个问题我不会显示任何图像只是一个简单的警告框)
所以我做了这样的事情:
$('#countdown').countdown('2015/10/13', function(event) {
$(this).html(event.strftime('<div class="days">%D</div> <div class="hours">%H</div> <div class="mins">%M</div> <div class="secs">%S</div>'));
if( $(".secs").html() == 35 ){
alert("The Second is 35!");
}
});
当我想检测某个时间时,这很管用。但是,如果我尝试使用该函数的条件 OUTSIDE,它当然不会起作用。
所以我的想法是 "Ok so I need to check a certain time and that can only be done in that function and I have to change content outside of that function how will I do this?" 我认为 布尔值 非常适合这个。然后我尝试了:
var timeCheck;
$('#countdown').countdown('2015/10/13', function(event) {
$(this).html(event.strftime('<div class="days">%D</div> <div class="hours">%H</div> <div class="mins">%M</div> <div class="secs">%S</div>'));
if( $(".secs").html() == 35 ){
timeCheck = true;
}
});
//outside of the function
if(timeCheck === true){
alert("The Boolean worked!");
}
遗憾的是,这没有用。我无法弄清楚这里的问题,或者这是否是正确的方法。不过,我在这里看到了一个可能的解决方案。
我的最终目标是在该函数中设置 3 个条件,并在满足条件时将 3 个变量设置为真,然后在该函数外部使用条件并查看变量是否为真,如果它显示图片.
所以真正的问题是为什么这不改变变量 timeCheck 的值?
非常感谢您的帮助。
(快速更新)我遗漏了一点 html 有:
<div id="countdown"></div>
这看起来更像你想要的。基本上,您应该在满足所需条件时发出函数调用:
var timeCheck;
$('#countdown').countdown('2015/10/13', function(event) {
$(this).html(event.strftime('<div class="days">%D</div> <div class="hours">%H</div> <div class="mins">%M</div> <div class="secs">%S</div>'));
if( $(".secs").html() == 35 ){
TimePassed();
}
});
function TimePassed(){
alert("I want to do something now!");
}
您可以更喜欢事件和回调,但此设置应该可以立即使用。
编辑:因为 OP 要求,这是事件方法的未经测试的近似值:
var timeCheck;
$('#countdown').countdown('2015/10/13', function(event) {
$(this).html(event.strftime('<div class="days">%D</div> <div class="hours">%H</div> <div class="mins">%M</div> <div class="secs">%S</div>'));
if( $(".secs").html() == 35 ){
$(this).trigger("ThirtyFiveSecondsLeft");
}
}).on("ThirtyFiveSecondsLeft", function(evt){ alert("I want to do something now!"); } );
所以我正在使用这个非常容易使用的 javascript 倒计时插件
它为我提供了一种方法,让我可以像这样设置特定时间的倒计时:
$('#countdown').countdown('2015/12/25', function(event) {
$(this).html(event.strftime('<div class="days">%D</div> <div class="hours">%H</div> <div class="mins">%M</div> <div class="secs">%S</div>'));
});
目标:
我倒计时工作正常,现在我想在特定日期显示特定图片。 (为了这个问题我不会显示任何图像只是一个简单的警告框)
所以我做了这样的事情:
$('#countdown').countdown('2015/10/13', function(event) {
$(this).html(event.strftime('<div class="days">%D</div> <div class="hours">%H</div> <div class="mins">%M</div> <div class="secs">%S</div>'));
if( $(".secs").html() == 35 ){
alert("The Second is 35!");
}
});
当我想检测某个时间时,这很管用。但是,如果我尝试使用该函数的条件 OUTSIDE,它当然不会起作用。
所以我的想法是 "Ok so I need to check a certain time and that can only be done in that function and I have to change content outside of that function how will I do this?" 我认为 布尔值 非常适合这个。然后我尝试了:
var timeCheck;
$('#countdown').countdown('2015/10/13', function(event) {
$(this).html(event.strftime('<div class="days">%D</div> <div class="hours">%H</div> <div class="mins">%M</div> <div class="secs">%S</div>'));
if( $(".secs").html() == 35 ){
timeCheck = true;
}
});
//outside of the function
if(timeCheck === true){
alert("The Boolean worked!");
}
遗憾的是,这没有用。我无法弄清楚这里的问题,或者这是否是正确的方法。不过,我在这里看到了一个可能的解决方案。
我的最终目标是在该函数中设置 3 个条件,并在满足条件时将 3 个变量设置为真,然后在该函数外部使用条件并查看变量是否为真,如果它显示图片.
所以真正的问题是为什么这不改变变量 timeCheck 的值?
非常感谢您的帮助。
(快速更新)我遗漏了一点 html 有:
<div id="countdown"></div>
这看起来更像你想要的。基本上,您应该在满足所需条件时发出函数调用:
var timeCheck;
$('#countdown').countdown('2015/10/13', function(event) {
$(this).html(event.strftime('<div class="days">%D</div> <div class="hours">%H</div> <div class="mins">%M</div> <div class="secs">%S</div>'));
if( $(".secs").html() == 35 ){
TimePassed();
}
});
function TimePassed(){
alert("I want to do something now!");
}
您可以更喜欢事件和回调,但此设置应该可以立即使用。
编辑:因为 OP 要求,这是事件方法的未经测试的近似值:
var timeCheck;
$('#countdown').countdown('2015/10/13', function(event) {
$(this).html(event.strftime('<div class="days">%D</div> <div class="hours">%H</div> <div class="mins">%M</div> <div class="secs">%S</div>'));
if( $(".secs").html() == 35 ){
$(this).trigger("ThirtyFiveSecondsLeft");
}
}).on("ThirtyFiveSecondsLeft", function(evt){ alert("I want to do something now!"); } );