gpt4 book ai didi

javascript - jQuery animate() 不适用于 If-Else 语句

转载 作者:行者123 更新时间:2023-12-03 04:33:17 26 4
gpt4 key购买 nike

这里是 JQuery 初学者。我试图让一组 div 在单击它们时从红色变为蓝色。当我再次单击它们时,我希望 div 变回红色。我尝试使用 jQuery 的 animate() 方法(带有 jQ​​uery 颜色插件)来更改 div 的颜色。但是,下面的代码仅部分有效。

$(document).ready(function(){

$("div").click(function() {
$("div").each(function() {
if (this.style.color !== "blue") {
$(this).animate({
color:'blue'
},1000);
} else {
this.style.color = "red";
}
});
});
});

当我单击 div 时,if 语句工作正常。 div 变为蓝色。但是,当我再次单击 div 时,div 不会变回红色。 else 语句似乎不起作用。对我的错误有什么想法吗?当我用 this.style.color = "blue"; 替换 $(this).animate({...}) 时, else 语句起作用,所以我认为我animate() 方法做错了什么。

这是 HTML 文件

<!DOCTYPE html> 
<html>
<head>
<title> each() test1 </title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<style>
body{
background-color: #000000;
color: #ffffff;
}
div {
font-size: 3em;
color: #ff0000;
text-align: center;
cursor:pointer;
font-weight: bolder;
width: 300px;
}
</style>
</head>
<body>
<div> Click here </div>
<div> to iterate through </div>
<div> these divs </div>
</body>
<script src="theJavaScriptFile.js"> </script>
</html>

最佳答案

只是不要使用蓝色红色颜色代码。它将被转换为 RGB 代码。例如,this.style.color 将是 RGB(0,0,255) 而不是 blue,因此您的表达式始终返回 true 无论是什么颜色。

我用不同的颜色模式创建了这个例子给你看https://jsfiddle.net/3tpncgr1/1/

无论如何,如果您想对特定颜色有特殊的逻辑,请继续使用这种方法。否则,使用类名而不是颜色代码来确定。因为浏览器总是为 color 属性返回 rgb

关于javascript - jQuery animate() 不适用于 If-Else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43403368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com