我设置了计时器,所以当dro
大于1时,我希望按钮具有类active
,否则删除类if
的语句有效,但else
无效。有解决方案吗?
var dro = 5;
var saboloo = 0;
function setup(){
var es = $('#dro');
dro--;
es.html(dro);
if(dro == -1){
es.html(clearInterval(setupInterval));
$('.wait').html('Game started');
}
}
var setupInterval = setInterval(setup,1000);
function manamde(){
if(dro > 1){
$('button').addClass('active');
} else {
$('button').removeClass('active');
}
}
manamde();
<h1 class="wait"><span value="5" id="dro">5</span>Seconds before the game starts</h1>
<button>start</button>```
答案 0 :(得分:1)
我认为您只是忘记从manamde()
内部调用setup()
函数。
您提供的代码只会在初始化时调用一次(因此,将类.active
添加为dro
的初始设置为5),但是不会在每次{{1 }}。 setInterval
语句本身运行正常。
我在下面调整了您的代码,并在if
中添加了一些样式,以证明其有效。
让我知道这是否不是您想要的。
.active
var dro = 5;
var saboloo = 0;
function setup() {
var es = $('#dro');
dro--;
es.html(dro);
if (dro == -1) {
es.html(clearInterval(setupInterval));
$('.wait').html('Game started');
}
// Add a call to run manamde() from within setup
// This will then run each second
manamde();
}
var setupInterval = setInterval(setup, 1000);
function manamde() {
if (dro > 1) {
$('button').addClass('active');
} else {
$('button').removeClass('active');
}
}
// This is still needed to add .active before the first setInterval is completed
manamde();
.active {
color: red;
}