添加到画布上后更改文本

ana*_*nam 4 html javascript jquery canvas fabricjs

在fabric-js中,我正在制作一组矩形和文本字段,然后将其添加到画布中。我正在使用以下代码,但是一旦将其添加到画布中,我可以更改文本字段的文本吗?

我已经制作了小提琴请检查,

http://jsfiddle.net/HAb4N/5/

var canvas = new fabric.Canvas('c');

var Bar = new fabric.Text('Bar', {selectable: false, top: 50, left: 10});


var rect = new fabric.Rect({width: 100, height: 100, left: 100, top: 100, fill: 'red'});
var group = new fabric.Group([rect, Bar], {selectable: true, top: 50, left: 100});
canvas.add(group);

canvas.renderAll();

$(document).click(function(e) {
    console.log('click');
    console.log('ActiveObject', canvas.getActiveObject());
    console.log('ActiveGroup', canvas.getActiveGroup());
    Bar.set('Text','Selectedoooooooo');
});
Run Code Online (Sandbox Code Playgroud)

ilg*_*gam 6

这对我有用:

Bar.setText("my_text");
canvas.renderAll();
Run Code Online (Sandbox Code Playgroud)

  • 在 fabric.js v2+ 中不起作用。使用 `Bar.set('text', your_text);` 代替。请注意,属性`text` 以小`t` 开头! (2认同)

小智 5

使用“set”函数时,请尝试使用驼峰命名法作为第一个参数!

换句话说,改变:

Bar.set('Text','Selectedoooooooo');
Run Code Online (Sandbox Code Playgroud)

到:

Bar.set('text','Selectedoooooooo');
Run Code Online (Sandbox Code Playgroud)

这对我有用


iJa*_*ade 1

是的,您可以在将文本添加到画布后设置文本。这是jsfiddle

尝试改变你的

Bar.set('Text','Selectedoooooooo');
Run Code Online (Sandbox Code Playgroud)

Bar.setText('Selectedoooooooo');
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你....