Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何在if语句中激活一段代码_Jquery - Fatal编程技术网

Jquery 如何在if语句中激活一段代码

Jquery 如何在if语句中激活一段代码,jquery,Jquery,我已经做了一个简单的例子来说明我实际上在做什么 我希望Jquery更改div的颜色一次$change=true,但这似乎不起作用。有人能解释一下原因吗?我该怎么做呢?(按按钮更改颜色不行,我需要通过if语句更改颜色-仅当$change=true时) if语句缺少大括号。另外,如果这不能解决它…尝试将if移到ready函数之外 if (change) { $div.css('backgroundColor','red'); } 您不想在单击按钮时更改颜色,但是更改颜色的条件取决于单击!

我已经做了一个简单的例子来说明我实际上在做什么

我希望Jquery更改div的颜色一次
$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);