我做了一个更简单的例子,说明了我实际上要做的事情http://jsfiddle.net/r5o6cmmd/1/
我希望Jquery在$change = true
之后更改div的颜色,但这似乎不起作用。有谁能解释为什么?我怎么能这样做呢? (通过按下按钮改变颜色不行,我需要通过if语句改变颜色 - 仅当$change = true
)
$(document).ready(function(){
$div = $('#div');
$button = $('#button');
$change = false;
$button.on('click',function(){
$change = true;
});
if($change)
$div.css('background-color','red');
});
答案 0 :(得分:1)
您不想在点击按钮时更改颜色,但更改颜色的条件取决于点击!好吧,颜色的变化必须移动到条件变化的地方,这在下面的点击处理程序中,并且不需要测试变量,因为你知道它是真的。事实上,除非你以后需要变量,否则不需要变量。
$(document).ready(function(){
$div = $('#div');
$button = $('#button');
$button.on('click',function(){
$div.css('background-color','red');
});
});
答案 1 :(得分:0)
如果您想定期测试变量,请使用setInterval
setInterval(function () {
if (change) {
$div.css('backgroundColor', 'red');
}
}, 500);
答案 2 :(得分:-4)
您缺少if语句的花括号。此外,如果没有解决它...尝试将if移动到就绪功能之外。
if (change) {
$div.css('backgroundColor','red');
}