我如何 return 来自 javascript 倒计时方法的布尔值

How can I return a Boolean from a countdown method in javascript

所以我正在使用这个非常容易使用的 javascript 倒计时插件

"The Final Countdown"

它为我提供了一种方法,让我可以像这样设置特定时间的倒计时:

$('#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!"); } );