Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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
Javascript if语句不适用于文本颜色_Javascript_Html_Sass - Fatal编程技术网

Javascript if语句不适用于文本颜色

Javascript if语句不适用于文本颜色,javascript,html,sass,Javascript,Html,Sass,好的,基本上我想做的是切换一个p元素的颜色,t改变,但是如果条件总是假的话: Html: <p id="brand-element-Samsung" onclick="itemSelectedSamsung()" style="color: #ff0000">Samsung</p> Sass: p width: 50% margin: 25px 23px 20px 23px pad

好的,基本上我想做的是切换一个p元素的颜色,t改变,但是如果条件总是假的话:

Html:

<p id="brand-element-Samsung" onclick="itemSelectedSamsung()" style="color: #ff0000">Samsung</p>


Sass:

p
              width: 50%
              margin: 25px 23px 20px 23px
              padding: 15px 15px 15px 15px
              cursor: pointer
              &:hover
                color: #a3abb1
                transition: color .2s ease


Js:

function itemSelectedSamsung() {
  var inactiveColor = "#ff0000"
  var activeColor = "#2c3e50"
  var hoveredColor = "#a3abb1"
  var text = document.getElementById('brand-element-Samsung')
  text.style.transition = "all .2s ease"
  text.style.color === activeColor ? text.style.color = inactiveColor : text.style.color = activeColor
}

Html:
三星

Sass: P 宽度:50% 利润率:25px 23px 20px 23px 填充:15px 15px 15px 15px 光标:指针 &:悬停 颜色:#a3abb1 过渡:颜色。2秒轻松 Js: 函数项SelectedSamsung(){ var inactiveColor=“#ff0000” var activeColor=“#2c3e50” var hoveredColor=“#a3abb1” var text=document.getElementById('brand-element-Samsung') text.style.transition=“所有.2s轻松” text.style.color===activeColor?text.style.color=inactiveColor:text.style.color=activeColor }
打印出您的
文本.样式.颜色
。它将采用
rgba()
格式,而不是CSS规则规定的十六进制格式。这就是它不起作用的原因

因此,对于
activeColor
,也应该使用
rgba()

但更好的方法是检查元素是否具有特定的类,并在CSS规则中添加颜色:

.brand-element-Samsung {
    color: #ff0000;
}

.brand-element-Samsung.active {
    color: #2c3e50;
}

$(document).on('click', '.brand-element-Samsung', function () {
    $(this).toggleClass('active');
});

打印出您的
文本.style.color
。它将采用
rgba()
格式,而不是CSS规则规定的十六进制格式。这就是它不起作用的原因

因此,对于
activeColor
,也应该使用
rgba()

但更好的方法是检查元素是否具有特定的类,并在CSS规则中添加颜色:

.brand-element-Samsung {
    color: #ff0000;
}

.brand-element-Samsung.active {
    color: #2c3e50;
}

$(document).on('click', '.brand-element-Samsung', function () {
    $(this).toggleClass('active');
});

不确定您在这里想要做什么,但是
activeColor?text.style.color=inactiveColor:text.style.color=activeColor
看起来有误
activeColor
是一个字符串,但您将其视为布尔值。您是否试图确定
activeColor
的真实性?另外,我90%确定
text.style.color==
应该是
text.style.color=
。是否要将
text.style.color
指定给新值?因为您需要使用赋值运算符(
=
)来完成此操作。是的,这就是我尝试在颜色之间切换的原因。因为您将其设置为非空字符串常量,所以
activateColor
始终是真实的。else条件永远不会被计算。不确定您在这里到底想做什么,但是
activeColor?text.style.color=inactiveColor:text.style.color=activeColor
看起来有误
activeColor
是一个字符串,但您将其视为布尔值。您是否试图确定
activeColor
的真实性?另外,我90%确定
text.style.color==
应该是
text.style.color=
。是否要将
text.style.color
指定给新值?因为您需要使用赋值运算符(
=
)来完成此操作。是的,这就是我尝试在颜色之间切换的原因。因为您将其设置为非空字符串常量,所以
activateColor
始终是真实的。这个条件永远不会被评估。