jquery ui droppable在鼠标指针的textarea中插入文本

我正在尝试使用jquery ui draggable / droppable拖放到textarea中。 我将textarea设置为droppable。 我可以在丢弃发生时触发事件,但我无法弄清楚如何准确确定textarea中“drop”发生在哪个位置。

基本上我想在文本区域的精确位置插入文本。

谷歌现在没有帮助我,这让我感到难过。

例:

Drag Drop Test     $(document).ready(function(){ $( "#catalog li" ).draggable({ appendTo: "body", helper: "clone" }); $( "#mytext" ).droppable({ accept: ":not(.ui-sortable-helper)", drop: function( event, ui ) { console.log(ui.position); // figure out where in the textarea this is // drop in some string } }); });    

T-Shirts

  • Lolcat Shirt
  • Cheezeburger Shirt
  • Buckit Shirt

因此,在上面的例子中,我如何找出textarea中哪个位置发生了某个目录li元素的“drop”,然后如何将字符串放入textarea中的那个确切位置?

这意味着,如果我将“Lolcat Shirt”拖入#mytext textarea并将其放在“random”和“text”之间,我希望将#mytext textarea值更改为“Just a random Lolcat Shirt text”。

这可能吗? 非常感谢您的帮助。 提前致谢!

除了IE之外,这在浏览器中并不容易,因为你必须使用范围,而其他浏览器没有任何方法可以处理范围内的坐标(你需要什么,将文本放在那里)。

但不知何故,你试图重新发明轮子。 大多数浏览器(可能全部)允许将所选文本移动到文本区域,因此您需要做的是:onmousedown选择

  • 的文本(而不是使其可拖动)

    如果你想要绝对的coördinates,你需要尝试类似的东西

     ui.helper.offset().left; //X ui.helper.offset().top; //Y