Je travaille sur l'application de médias imprimés en ligne comme 'vistaprint.in' où l'utilisateur peut modifier les conceptions premade sur toile js canvas. dans l'objet fabric.js il n'y a pas d'identifiant unique pour les objets ... tous les objets texte créent une entrée pour chacun d'entre eux afin que l'utilisateur puisse directement changer le texte désiré en changeant juste en entrée ... vous pouvez voir dans la capture d'écran du côté droit de il y a des entrées pour chaque objet texte ... ce que je fais maintenant est quand l'entrée change i boucle à travers tous les objets texte et assortit le texte d'entrée et le texte d'objet texte s'il correspond alors je mets à jour le nouveau texte à cet objet pour la première fois mais pas après ça ... j'ai essayé mais je n'arrivais pas à trouver quoi faire pour résoudre ça.Fabric.js éditant le texte via des entrées
Voici comment toile et entrée ressemble maintenant Screenshot of app
et c'est la fonction que je créé aujourd'hui pour changer le texte de toile
$(document).on('input', '#cardalltexthex input', function(){
v = $(this).attr('text');
newtext = $(this).val();
objs = canvas.getObjects();
objs.forEach(function(e) {
if (e && e.type === 'i-text') {
console.log(e.text);
console.log(newtext);
if (e.text == v) {
e.setText(newtext);
canvas.renderAll();
}
}
});
});
merci pour la réponse, je sais que cela va fonctionner avec ID, mais le problème est que nous avons déjà créé des milliers de dessins et pas utilisé ids ... Je dois le faire sans IDS –
@sunilkumar alors quelle erreur obtenez-vous? –
pas d'erreur, mais le texte de toile change seulement la première fois quand je modifie en entrée –