2011-09-24 78 views
6

我在我的网站上有一个div,当它被点击时,它显示搜索框(用jQuery完成)。DIV拖放文本

但是,我想这个div接受drag'n'dropped文本。在我的使用案例中,用户从网站上的任何位置选择常规文本,然后拖放它以将其复制粘贴到搜索框中。

如果搜索框总是可见的,他可以简单地将它放入文本框中,由浏览器/操作系统本地处理。但是,有没有办法用这个div来模拟同样的事情?用户将他的文本放到div上,然后它会触发click事件来显示文本框并将放置的文本粘贴到框中。

我的网站使用Modernizr + jQuery + jQuery UI和HTML5/CSS3。 IE6兼容性不是问题。

预先感谢您!

+0

[This question](http://stackoverflow.com/questions/1922559/jquery-drag-drop-into-a-text-area)涵盖了一个类似的话题。 –

+0

我看到了这个话题,但它需要拖动的文本在一个特定的容器中,然后拖动(),而我正在谈论你突出显示和拖动的任何旧的常规文本。我已经尝试将droppable()应用于div,并且放置事件似乎不会触发。 –

+0

也许使用'mouseover','mouseup'和'document.getSelection'的组合可以。查看http://stackoverflow.com/questions/1317727/get-selected-text-on-the-page-not-in-a-textarea-with-jquery –

回答

7

您可以使用HTML5拖放事件:

$('#dropTextHere').bind('drop', function (e) { 
    var theDroppedText = e.originalEvent.dataTransfer.getData('Text'); 
}); 

你可以阅读更多关于它here

+0

非常感谢!该代码和文章做到了! –