Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.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在单击时更改背景的颜色_Jquery_Css_Colors - Fatal编程技术网

jQuery在单击时更改背景的颜色

jQuery在单击时更改背景的颜色,jquery,css,colors,Jquery,Css,Colors,我对jQuery有点粗暴,所以请容忍我 代码的目标是单击,如果正方形为白色,则使用选定的颜色对其进行着色。如果它是选定的颜色,请将其设置回白色。除了从一种颜色转换到另一种颜色时,中间有一个白色斑点。例如: 当我做黑色>蓝色时,它处理为黑色>白色>蓝色 下面是我的代码片段 $(pixelCanvas).on("click", "td", function(){ let background = $(this).css("background-color"); let isEmpty = !back

我对jQuery有点粗暴,所以请容忍我

代码的目标是单击,如果正方形为白色,则使用选定的颜色对其进行着色。如果它是选定的颜色,请将其设置回白色。除了从一种颜色转换到另一种颜色时,中间有一个白色斑点。例如:

当我做黑色>蓝色时,它处理为黑色>白色>蓝色

下面是我的代码片段

$(pixelCanvas).on("click", "td", function(){
let background = $(this).css("background-color");
let isEmpty = !background || background === "rgb(255, 255, 255)" ||
   background === "#ffffff";
let isNotColor = background !== color;
if(isEmpty){
    $(this).css("background-color", color); 
} else if(isNotColor){
    $(this).css("background-color", color);
} else {
    $(this).css("background-color", "#ffffff");
}
})

这是我的代码笔链接


提前谢谢你

因此我找到了一个将rgb转换为十六进制的函数,并将其用于背景色。它似乎工作得很好,但我不确定它是否能在所有浏览器和操作系统上一致工作,在Windows10上对Chrome进行了测试。无论哪种方式,它都应该让你知道你需要关注什么,那就是确保你的颜色代码都是相同的格式

/*全球美元*/ $document.readyfunction{ 让color=$colorPicker.val; 让row=$.row; 让column=$.column; 设submitBtn=$submitBtn; 让pixelCanvas=$pixel_canvas; 让mouseDown=false; 函数makeGridheight,width{ 对于let i=0;i<高度;i++{ 设tableRow=$; 对于设j=0;j为什么不改用class,用addClass或removeClass来改变颜色呢?@guradio完全正确。。如果有可能的话,它真的很难做到这一点。css为每种颜色创建css类,然后使用if$'element'。hasClass和add/remove类将是更好、更简单的方法that@guardio但是如何动态地更新CSS类的颜色呢。这是我的问题。当用户在此处选择新输入且颜色值发生变化时,如何将其传递到CSS类?在$pixelCanvas.onclick事件中,如果没有if-else ladder,它将正常工作,为什么需要它?如果您真的需要检查背景!==然后考虑创建一个布尔变量并相应地修改它。@AniketSahrawat如果它等于color,我还需要将它设置为白色。这就是为什么我有“如果”的原因