【发布时间】:2015-01-16 06:11:09
【问题描述】:
想法是这样的 -
有一个 contenteditable 元素,其中包含一些文本。我正在尝试建立一个标记机制(有点像 twitter 的人在你输入“@”时标记)。每当用户输入“@”时,当他们继续输入时,它就会显示一个带有建议和过滤器的弹出框。直到这里这很容易,我已经弄清楚了。当/仅当插入符号位于包含标签的元素上方时,我需要显示弹出框时,问题就来了。
<div contenteditable="">
<p>Some random text before
<a href="javascript:;"
class="name-suggest"
style="color:inherit !important;text-decoration:inherit !important">@samadams</a>
Some random text after</p>
</div>
现在,每当用户将插入符号移到 a 标签上/单击它时,我想触发一个显示弹出框的事件,并在插入符号离开 a 标签时将其删除。 (有点像焦点/模糊,但它们似乎不起作用)。 onmousedown 有效,但无法判断光标是否已通过键盘移动到锚标记中。
另外,我在 angularjs 中这样做,因此,任何针对此的解决方案都是可取的,但不是必需的。
已经尝试让它工作一天,非常感谢任何帮助。
【问题讨论】:
标签: javascript jquery angularjs frontend jquery-events