如何使用 jQuery 监听文本区域中的拖放纯文本?

发布于 2024-12-02 04:04:15 字数 161 浏览 1 评论 0原文

我希望用户能够将纯文本(浏览器外部)拖放到文本区域中,并侦听此事件。

至少在 chrome 中,.change() 不会注意到这一点,而 jQueryUI .droppable() 似乎只适用于 html 元素,而不是纯文本。欢迎任何建议。

I want a user to be able to drag and drop plain text (external to the browser) into a textarea, and listen for this event.

In chrome at least, .change() does not pick up on this, and jQueryUI .droppable() only seems to work with html elements, not plain text. Any suggestions are welcome.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜中书 2024-12-09 04:04:15

这似乎在 IE7+、FF6 和 Chrome 中工作正常(在 Safari 上不起作用):

$("textarea")
    .bind("dragover", false)
    .bind("dragenter", false)
    .bind("drop", function(e) {
        this.value = e.originalEvent.dataTransfer.getData("text") ||
            e.originalEvent.dataTransfer.getData("text/plain");

        $("span").append("dropped!");

    return false;
});

(基本上改编自 此相关答案

示例: http://jsfiddle.net/2cJZY/
看来您必须取消 dragover (和 dragenter)事件才能捕获 Chrome 中的 drop 事件。

This seems to work fine in IE7+, FF6, and Chrome (does not work on Safari):

$("textarea")
    .bind("dragover", false)
    .bind("dragenter", false)
    .bind("drop", function(e) {
        this.value = e.originalEvent.dataTransfer.getData("text") ||
            e.originalEvent.dataTransfer.getData("text/plain");

        $("span").append("dropped!");

    return false;
});

(Basically adapted from this related answer)

Example: http://jsfiddle.net/2cJZY/
Looks like you must cancel the dragover (and dragenter) event to catch the drop event in Chrome.

油饼 2024-12-09 04:04:15

检查另一个事件(例如 onfocus)怎么样?

存储文本区域的值,在文本区域的焦点上,检查是否进行了更改。

How about checking another event like onfocus?

Store the value of the textarea, onfocus of the text area, check if a change was made.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文