在javascript

时间:2015-11-30 17:15:37

标签: javascript input drag-and-drop onmouseover

我有一个输入了一些文字的文本框。 此外,我有一个可拖动的div,我可以拖放到我的文本框上。 此div的内容在删除时作为文本插入文本框(附加到末尾)。

现在我希望能够在文本框中操作光标,使其跟随鼠标位置,并将文本准确插入到删除的位置。

我已经有了x和y鼠标,我知道如何操作插入符号,但我不知道如何将这两者结合起来......

提前感谢任何建议

1 个答案:

答案 0 :(得分:3)

由于只有img和标签拖放正常,我决定使用它们。通过正确工作,我的意思是当项目(a或img)拖过输入文本时,它强制光标(插入符号)沿着拖动的项目移动,内容被删除在文本中的确切位置。

这不适用于div所以我所做的是将我的项目创建为带有空href的<a>标签,然后我在ondragstart事件中切换了event.dataTransfer内容,以便删除的内容不是url(如它默认发生)但我的自定义文本。

我使用敲除绑定做到了:

<a class="measure-draggable" data-bind="html: title(), event: {'dragstart':$parent.setTransferProperties}" draggable="true"></a>

在viewModel(coffeescript)的幕后:

setTransferProperties: (sender, evt) ->
    evt.originalEvent.dataTransfer.setData("text/plain", "{{" + sender.title() + "}}")
    true

这就是诀窍

这是工作小提琴:https://jsfiddle.net/foqb7b95/