【问题标题】:How to update clicked element?如何更新点击的元素?
【发布时间】:2021-05-24 22:18:49
【问题描述】:

我正在制作一个绘图板,我希望得到我点击的颜色。问题:我只得到我首先点击的颜色。我的想法:通过 id 获取值并给它适当的颜色。这是我的代码:

<script>

            var colorNames = ["fuchsia","maroon", "red", "olive", "yellow", "green","lime", "teal", "aqua", "navy", "blue", "purple","black", "gray", "silver","white"];
            for (var i = 0; i < 16; i++) {
                document.write(`<div id="color${i}" class="color" style="background-color:${colorNames[i]}" onclick="draw(this)"></div>`);
            

            }
        console.log(colorNames)

        function draw(colorBox){

            var ChosenColorBox = colorBox.id;          
            console.log(ChosenColorBox)  
            var canvas = new fabric.Canvas("canvas");
           

            canvas.isDrawingMode = true;
            canvas.freeDrawingBrush.width = 5;
           
            
             if(ChosenColorBox=="color0"){
              canvas.freeDrawingBrush.color = "fuchsia";    
             }
            else if (ChosenColorBox=="color1")
            { 
               canvas.freeDrawingBrush.color = "maroon";
            }
    }
              
        




        </script>

【问题讨论】:

标签: javascript function onclick this


【解决方案1】:

您可以从元素本身获取颜色

例子:

<script>

  var colorNames = ["fuchsia","maroon", "red", "olive", "yellow", "green","lime", 
    "teal", "aqua", "navy", "blue", "purple","black", "gray", "silver","white"];
  for (var i = 0; i < 16; i++) {
    document.write(`<div id="color${i}" class="color" 
        style="background-color:${colorNames[i]}" onclick="draw(this)"></div>`);
  }
  console.log(colorNames)

  function draw(colorBox){
    var ChosenColorBox = colorBox.id;          
    console.log(ChosenColorBox)  
    var canvas = new fabric.Canvas("canvas");

    canvas.isDrawingMode = true;
    canvas.freeDrawingBrush.width = 5;

    canvas.freeDrawingBrush.color = colorBox.style['background-color']
  }

</script>

【讨论】:

  • 我试过了,但即使我点击了不同的颜色,我仍然得到相同的颜色。除非我刷新页面,否则我无法获得与第一个不同的颜色。我不确定如何清除我之前的选择。
猜你喜欢
  • 2018-01-24
  • 2019-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多