Javascript Fabric JS如何从另一个函数调用函数

Javascript Fabric JS如何从另一个函数调用函数,javascript,html,css,fabricjs,Javascript,Html,Css,Fabricjs,我有一个函数,可以在单击图像时隐藏和显示图像,但我想通过单击另一个对象来执行相同的操作 这是图像的代码 function drawCheckbox(left, top, width, height){ var imgClass = new fabric.Image.fromURL('https://image.flaticon.com/icons/svg/33/33281.svg',function(img){ img.width = width

我有一个函数,可以在单击图像时隐藏和显示图像,但我想通过单击另一个对象来执行相同的操作

这是图像的代码


    function drawCheckbox(left, top, width, height){
        var imgClass = new fabric.Image.fromURL('https://image.flaticon.com/icons/svg/33/33281.svg',function(img){
            img.width = width;
            img.height = height;
            img.left = left;
            img.top = top;
            img.set({
                hoverCursor: 'default',
                selectable: true,
                opacity: 0
    
            })
            img.on('mousedown', function(e) {
                if(e.target.opacity <= 0.5){
                    e.target.opacity = 1;
                }else{
                    e.target.opacity = 0;
                }
                canvas.renderAll();
    
            });
            canvas.add(img);
            canvas.renderAll();
    
        })
    }

我尝试在矩形内创建图像,但单击矩形时,图像没有任何作用。有没有人有过类似的问题

这是代码笔:codepen.io/Zerro1/pen/PoZvmOE。

这里我为您创建了一个,这是一种方法。我试图创建一个正方形,点击该正方形,我切换最后一个复选框可见性

代码部分:

var square = new fabric.Rect({ 
        width: 100, 
        height: 100, 
        fill: '#000',
         left:120
    });
    square.on('mousedown', function(e) {
    if(img.opacity <= 0.5){
    img.opacity = 1;
    }else{
    img.opacity = 0;
    }
    canvas.renderAll();

    });
    canvas.add(img);
    canvas.add(square); 
    canvas.renderAll();
var square=newfabric.Rect({
宽度:100,
身高:100,
填写:“#000”,
左:120
});
平方开('mousedown',函数(e){

如果(img.opacity),您能为它创建代码笔吗?这是代码笔:。我需要创建另一个对象(矩形或类似对象)当我点击矩形时,我想将复选框图像设置为不透明度0。我可以看到点击图像对象切换可见性,现在在哪个对象上点击你想实现相同的可见性?在一个新的对象上(我尝试在那里放置一个矩形对象,但由于某种原因它没有在代码笔中显示)。我需要一个新的矩形,通过单击它,一个图像将被设置为不透明度0。或者我如何在该代码笔中创建两个单独的函数?一个用于设置不透明度,另一个用于创建该图像。如果函数将被分离,我将知道如何从那里解析它。谢谢您的回答!我有什么方法可以创建该函数吗我们可以分开吗?我的意思是一个用于图像的函数,一个用于正方形,一个用于设置图像的不透明度。这可能吗?是的,为什么不可能。你也可以这样做。请通过我为这些创建单独函数的相同链接。
var square = new fabric.Rect({ 
        width: 100, 
        height: 100, 
        fill: '#000',
         left:120
    });
    square.on('mousedown', function(e) {
    if(img.opacity <= 0.5){
    img.opacity = 1;
    }else{
    img.opacity = 0;
    }
    canvas.renderAll();

    });
    canvas.add(img);
    canvas.add(square); 
    canvas.renderAll();