好的,这基本上就是我现在正在做的事情。我创建了raphael文本对象。我使用单击事件打开一个对话框。然后我对对话框中的文本进行更改。这不是我希望如何实现这一点。我希望我的实现有点类似于在MS Paint中创建文本的方式,用户可以在文本对象上单击并在键入时更改文本。有人知道如何使用raphael文本对象实现它吗?
答案 0 :(得分:1)
一个简单的解决方案是在用户开始编辑文本时创建<textarea>
。用当前文本填充它并将其放在文本对象上。然后,当它失去焦点(onblur
)时,删除文本区域并将文本复制回文本对象。
如果您确实要在文本对象中“编辑”文本,则可以让用户键入隐藏文本字段。但在这种情况下,您必须自己实现所有光标和选择逻辑。请参阅this fiddle(仅允许使用向右和向左箭头移动光标,使用shift选择文本以便复制和粘贴)。
或者,我不知道contenteditable是否适用于SVG内容,但如果它确实有效,那将是一个非常简单的解决方案。