1

好的,这基本上就是我现在正在做的事情。我创建了 raphael 文本对象。我使用点击事件打开一个对话框。然后我对对话框中的文本进行更改。不过,这不是我希望实现的方式。我希望我的实现有点类似于在 MS Paint 中创建文本的方式,用户可以单击文本对象并在键入时更改文本。有人知道如何使用 raphael 文本对象来实现这一点吗?

4

1 回答 1

1

<textarea>一个简单的解决方案是在用户开始编辑文本时创建一个。用当前文本填充它并将其放置在文本对象上。然后,当它失去焦点 ( onblur) 时,移除文本区域并将文本复制回文本对象。

如果您真的想在文本对象中“就地”编辑文本,那么您可以让用户在隐藏的文本字段中键入。但在这种情况下,您必须自己实现所有光标和选择逻辑。请参阅this fiddle(仅允许使用左右箭头移动光标,使用 shift 选择文本以便您可以复制和粘贴)。

或者,我不知道contenteditable是否适用于 SVG 内容,但如果它确实有效,那将是一个非常简单的解决方案。

于 2013-06-05T16:31:39.870 回答