下面的代码位于document.ready函数中。 if-else语句的工作方式只有一半......第一部分(如果)工作正常,我在powerClicked之后发出警报,告诉我它是否将powerClicked设置为1,它就是。其他如果绝对没有...任何人看到我的错误?我不知道是否有什么东西可能会破坏jQuery,整个HTML都是通过ReactJS VDOM呈现的。
var powerClicked = 0;
if(powerClicked == 0) {
$('#Power').click(function() {
powerClicked = 1;
$('#Power').animate({
backgroundColor: 'rgba(255,0,0,1)'
}, 1500);
//fading in text
$('#boxText').delay(2000).fadeIn(500).text('Listening');
});
} else if(powerClicked == 1) {
$('#Power').click(function() {
$('#Power').animate({
backgroundColor: 'rgba(255,255,255,1)'
}, 1500);
//fading out text
$('boxText').fadeOut(500);
powerClicked = 0;
});
}

答案 0 :(得分:2)
当代码运行时,if
语句会运行并创建处理$('#Power')
元素点击的函数。
每当单击$('#Power')
元素时,将触发其中定义的函数。 if-else
永远不会再执行。您需要在单击处理程序中移动if-else
逻辑。这样的事情应该有效:
var powerClicked = false;
$('#Power').click(function() {
powerClicked = !powerClicked;
if (powerClicked) {
$('#Power').animate({
backgroundColor: 'rgba(255,0,0,1)'
}, 1500);
} else {
$('#Power').animate({
backgroundColor: 'rgba(255,255,255,1)'
}, 1500);
}
//fading in text
$('#boxText').delay(2000).fadeIn(500).text('Listening');
});
答案 1 :(得分:0)
$('boxText')
您需要将其更改为$('#boxText')
,以便正确抓取元素节点(假设它具有 id 的“boxText”