【发布时间】:2012-02-21 18:43:39
【问题描述】:
对于我正在进行的项目,我需要能够在 textarea 的文本内容之前显示“div”:
起初我以为我可以只使用绝对定位和 z-index 放置 div,但这需要“推送”文本,并确保用户不能删除那些第一个空格,而不是使用退格键或 ctrl +c 也不是 ctrl+x 也不是 delete ... 看起来很复杂。
现在,我正在尝试使用一个看起来像 textarea 的“div”,其中包含一个 可编辑“span”,其中包含文本:
目前可行,但并不完美,尤其是在 :focus 方面(单击外部 div 上的任意位置应在文本跨度中显示光标*),如果我清空文本跨度,它似乎会中断。
关于如何解决这个问题的任何想法?我愿意接受建议,即使我必须更改我的假文本区域的结构。
它应该适用于所有主要(最近的)浏览器,并且可以使用 jQuery。
-
$('#outerDiv').bind('click', $('#outerDiv span.text').focus());似乎在 Chrome 中有效,但在 Firefox 中无效。
【问题讨论】:
-
您始终可以通过容器上的点击事件将焦点放在跨度上
-
textarea 中的文本是否有 与 div 在同一行开始?如果你能从下一行开始,那就容易多了。
-
@GregL : 如果我做不到,我会让它在 div 下开始,但如果它们在同一行会更漂亮。
-
请注意,模拟跨跨度的文本选择(以提供与 textarea 相同的体验)在 a** 中会很痛苦。我不太确定这个解决方案比使用一个 textarea 并确保文本被移动以便它在 div1 或 div2 之后开始那么复杂。
标签: javascript jquery html css