Javascript 在fabric.js中的函数中添加对象

Javascript 在fabric.js中的函数中添加对象,javascript,fabricjs,Javascript,Fabricjs,我试图在用户单击其他对象时添加一些对象。下面的代码不起作用。我还尝试添加setCoords,但似乎没有任何效果。 非常有趣的是,删除操作按我的预期进行。 谢谢你的建议 var showerOn = 0; //0 == off 1 == on var sprayOption = 0; var massageOption = 0; var trickleOption = 0; function selectShower() { if(showerOn == 1) { showerBu

我试图在用户单击其他对象时添加一些对象。下面的代码不起作用。我还尝试添加setCoords,但似乎没有任何效果。 非常有趣的是,删除操作按我的预期进行。 谢谢你的建议

var showerOn = 0; //0 == off 1 == on
var sprayOption = 0; 
var massageOption = 0;
var trickleOption = 0;

function selectShower() {
  if(showerOn == 1) {
    showerButton.fill = 'yellow';
    canvas.add(showerSpray);
    canvas.add(showerMassage);
    canvas.add(showerTrickle);
  }
  else {
    showerButton.fill = 'white';
    showerSpray.fill = 'white';
    showerMassage.fill = 'white';
    showerTrickle.fill = 'white';
    sprayOption = 0; 
    massageOption = 0;
    trickleOption = 0;
    canvas.remove(showerSpray);
    canvas.remove(showerMassage);
    canvas.remove(showerTrickle);
  }
}

showerButton.on('selected', function() {
  showerOn = 1 - showerOn;
  selectShower();
  canvas.deactivateAll();
});

您在哪里初始化和/或重置
showerOn
变量为1或0?你能把完整的剧本贴出来吗?我认为这个变量未初始化或设置不正确..我在函数的正上方初始化变量。我只是在学习javascript和fabric.js,但据我所知,第一次单击时,淋浴按钮.on会使淋浴变量为1,下次单击时为0,依此类推。当你说这不起作用时,你的意思是“on”(“selected”),回调从未发生过吗?如果使用Google Chrome(F12),您可以尝试对此进行调试。您还可以放置
console.log(淋浴)语句作为
按钮中的第一行。在
上查看它是否被触发。在第一个
中添加元素后,尝试执行
canvas.renderal()
,如果
块…通过“不起作用”,我的意思是它不添加对象。这是肯定进入,如果声明正确。canvas.renderAll()也无法修复它。