Javascript FabricJs画布';鼠标:在'上;事件不起作用

Javascript FabricJs画布';鼠标:在'上;事件不起作用,javascript,fabricjs,Javascript,Fabricjs,我试图在FabricJS(版本:1.4.0)画布上监听鼠标:覆盖事件,但它似乎没有像我预期的那样工作。下面是片段 constcanvas=newfabric.canvas('gameCanvas',{selection:false}); const rect=new fabric.rect({ 左:120, 前30名, 宽度:100, 身高:100, 填充:“绿色”, 角度:20, 名称:'矩形', 光标悬停:“指针” }); canvas.add(rect); canvas.renderAl

我试图在FabricJS(版本:1.4.0)画布上监听鼠标:覆盖事件,但它似乎没有像我预期的那样工作。下面是片段

constcanvas=newfabric.canvas('gameCanvas',{selection:false});
const rect=new fabric.rect({
左:120,
前30名,
宽度:100,
身高:100,
填充:“绿色”,
角度:20,
名称:'矩形',
光标悬停:“指针”
});
canvas.add(rect);
canvas.renderAll();
$('.upper canvas').mouseover(函数(e)
{
如果(例如,目标!==null)
{
如果(e.target.name==='Rectangle')
{
e、 target.set('fill','red');
canvas.renderAll();
log('mouse:over',e.target.name);
}
} 
});
$('.upper canvas').mouseout(函数(e)
{
如果(例如,目标!==null){
e、 target.set('fill','green');
canvas.renderAll();
log('mouse:out',e.target.name);
}
});

来自:

添加“鼠标悬停”和“鼠标悬停”画布事件(以及相应的 “mouseover”、“mouseout”对象事件)


事实上,在1.5.0之前没有这样的事件。

我能为1.4.0想出的最佳解决方案。我建议使用不同的版本

constcanvas=newfabric.canvas('gameCanvas',{selection:false});
const rect=new fabric.rect({
左:120,
前30名,
宽度:100,
身高:100,
填充:“绿色”,
角度:20,
名称:'矩形',
光标悬停:“指针”
});
canvas.add(rect);
canvas.renderAll();
$('.upper canvas').mouseover(函数(e){
矩形集合('fill','red');
canvas.renderAll();
});
$('.upper canvas').mouseout(函数(e){
矩形集合('fill','green');
canvas.renderAll();
});


我记得有过类似的问题。这可能是因为fabric js在画布上放置了一个元素。您希望侦听该元素上的事件
.upper canvas
您想收听什么。upper canvas?Fabric js使用类
upper canvas
将画布元素放置在原始画布元素上。它会阻止单击事件在其下的元素上工作。如何将事件附加到上部画布下的元素?我不确定。我可能会把你引向错误的方向。当我读他们的文件时。你的解决方案应该有效@Xris同样不能与1.4.0配合使用。在1.4.0中没有
over
/
out
事件。根据变更日志,这些事件是在1.5.0中添加的。如果出于任何原因无法使用1.5.0,则必须1)实现自己的事件,或2)查找1.5.0中添加这些事件并修补正在运行的版本的提交。知道我将如何实现这些事件吗?我已经尝试升级到1.5.0版和其他版本broke@Xris也许会有帮助。虽然在我看来,从长远来看,升级(并修复任何损坏的东西)总是更好。非常感谢,伙计,我将尝试添加这两个缺少的事件。再次非常感谢