javascript - 无法设置Data( 'undefined')以允许元素拖放

标签 javascript html

我试图将一个元素放入另一个元素中,但它不起作用。我得到的错误是

未捕获类型错误:无法读取未定义的属性“setData”

未捕获类型错误:无法读取未定义的属性“getData”

当然,第二个取决于第一个。

我试图删除的元素如下所示:

<main id="post-it" class="post-it-content">
    <div class="vertical-stripes"></div>
    <div class="vertical-stripes"></div>
    <ul class="nav">
        <li>
            <span class="normal-text"></span>
            <span class="normal-text"></span>
        </li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li class="notes-footer"></li>
    </ul>
    <textarea id="notes-area"></textarea>
</main>

这是下面图片中看起来黄色的注释。

然后我像这样处理拖放:

var dragAndDrop = {
    allowDrop: function(e) {
        e.preventDefault();
    },
    drop: function(e) {
        e.preventDefault();
        var data = e.dataTransfer.getData("text");
        e.target.appendChild(document.getElementById(data));
    },
    drag: function(e) {
        e.dataTransfer.setData("text", e.target.id);
        e.dataTransfer.effectAllowed = 'move';
    }
}

并将元素绑定(bind)到相应的函数,如下所示:

$('.post-it-content').on('dragstart', dragAndDrop.drag); //Yellow note element
li.on('drop', dragAndDrop.allowDrop);
li.on('dragover', dragAndDrop.drop);

其中 li 元素是此图像中的正方形:

example image

现在我不明白的是为什么我会收到错误,我所做的与此处找到的示例完全相同(尽管不是使用图像):http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_draganddrop但对我来说它不起作用。有什么想法为什么这不起作用吗?

最佳答案

这是 jQuery 的问题,您可以通过在页面加载时或使用 dataTransfer 之前添加以下代码来解决它

jQuery.event.props.push('dataTransfer');

示例:

jQuery.event.props.push('dataTransfer'); 
event.dataTransfer.setData("Text", event.target.id);

关于javascript - 无法设置Data( 'undefined')以允许元素拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27757758/

相关文章:

JavaScript 正则表达式 : match and identify alternative delimiters and capture surrounding text

php - 我在将文件移动到我想要的文件夹时遇到问题

php - 使用 Simple HTML DOM Parser 按 ID 查找表

php - 如何从 php 运行 html 文件?

javascript - 如何在react中重新绑定(bind)点击事件

javascript - jQuery UI - 当 droppable 必须删除拖动的元素时怎么办?

javascript - JQuery Ajax PHP 中的错误和成功处理

javascript - iOS 7 进入全屏模式(添加到主屏幕按钮)

html - Cypress 测试用例 : Select only text of an element (not the text of its children/descendants)

html - Bootstrap 3.3 导航栏下拉文本溢出容器