jQuery 拖放返回 "Object has no method ' appendChild'"错误

标签 jquery drag-and-drop

我认为只是简单的拖放操作,但我似乎无法开始工作。我只是想将拖动的图像移动到其目标中:

$('img').each(function(){
  var self = $(this);
  self.attr('draggable', 'true');
  self.bind('dragstart', function (e) {
    e.originalEvent.dataTransfer.setData('text', self.attr('id'));
  })
})
$('.drop-target').each(function(){
  var self = $(this);
  self.bind('dragover', function (e) {
    e.preventDefault();
  })
  self.bind('dragenter', function (e) {
    e.preventDefault();
  })
  self.bind('drop', function (e) {
    var elemId = e.originalEvent.dataTransfer.getData("text");
    console.log("elem id: "+elemId)
    self.appendChild($(elemId));
    if(e.preventDefault){
      e.preventDefault()
    }
  });
})

所以 - 元素 ID 的传递没有问题。我刚刚在控制台中收到 Uncaught TypeError: Object [object Object] has no method 'appendChild' 消息。想法?

需要更多信息吗?谢谢!

最佳答案

这段代码有几个问题。

jQuery 对象上的 appendChild 方法

self.appendChild($(elemId)); 中的

self 是一个 jQuery 对象,但是 appendChild( )是DOM元素的一个方法,这就是发生错误的原因。

ID选择器

您还根据您的 ID 创建了不正确的选择器。 ID 选择器应以 # 开头。

更正的代码

完成这些修复后,您的代码应如下所示:

self.append($('#' + elemId));

有效果吗?这可能不是此代码的唯一问题。

关于jQuery 拖放返回 "Object has no method ' appendChild'"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8673373/

相关文章:

javascript - 我的文档上的 Jquery Block .ready 功能不起作用

Jquery 或 CSS 选择器在特殊情况下删除填充

drag-and-drop - 是否可以关闭vscode中的拖放功能?

c# - 从列表框中拖放项目时出现一些错误

javascript - CSS 问题 - 我的 DIV 一直处于折叠状态!

javascript - 选择 javascript 数组

javascript - 如何在 contenteditable 元素中用 html 替换选定的文本?

jquery - 使用 jQuery 换行文本

java - Android 中的拖放 View

c# - 如何在 silverlight 中拖放 "box"