Jquery 如何在if语句中激活一段代码
我已经做了一个简单的例子来说明我实际上在做什么 我希望Jquery更改div的颜色一次Jquery 如何在if语句中激活一段代码,jquery,Jquery,我已经做了一个简单的例子来说明我实际上在做什么 我希望Jquery更改div的颜色一次$change=true,但这似乎不起作用。有人能解释一下原因吗?我该怎么做呢?(按按钮更改颜色不行,我需要通过if语句更改颜色-仅当$change=true时) if语句缺少大括号。另外,如果这不能解决它…尝试将if移到ready函数之外 if (change) { $div.css('backgroundColor','red'); } 您不想在单击按钮时更改颜色,但是更改颜色的条件取决于单击!
$change=true
,但这似乎不起作用。有人能解释一下原因吗?我该怎么做呢?(按按钮更改颜色不行,我需要通过if语句更改颜色-仅当$change=true
时)
if语句缺少大括号。另外,如果这不能解决它…尝试将if移到ready函数之外
if (change) {
$div.css('backgroundColor','red');
}
您不想在单击按钮时更改颜色,但是更改颜色的条件取决于单击!!好的,颜色的改变必须移动到条件改变的地方,在点击处理程序中,如下所示,并且不需要测试变量,因为您知道它是真的。事实上,不需要变量,除非您以后需要它
$(document).ready(function(){
$div = $('#div');
$button = $('#button');
$button.on('click',function(){
$div.css('background-color','red');
});
});
如果要定期测试变量,请使用
setInterval
setInterval(function () {
if (change) {
$div.css('backgroundColor', 'red');
}
}, 500);
单击按钮后,运行的唯一代码是
click
处理程序中的代码。您的if($change)
只运行一次,并且在触发事件之前。为什么不在事件处理程序本身中更改背景颜色呢?变量的$
前缀在JavaScript中没有任何意义,程序员有时会使用它来指示jQuery变量。用$
作为常规变量名的前缀是毫无意义的。是否有办法在单击按钮后重新运行整个代码?正确的方法是将if
放在事件处理程序中。重新运行文档。ready()
会将$change
重置为false。如果正文中只有一条语句,则不需要大括号。我不知道这一点,但这似乎是一种不好的做法,可能会在以后的代码中烧掉您@是的,这是一个坏习惯,我总是反对。但这不是问题,所以这不是答案。测试刚设置的变量有点傻,你不觉得吗?不需要条件。谢谢!这就行了。
setInterval(function () {
if (change) {
$div.css('backgroundColor', 'red');
}
}, 500);