【问题标题】:Drag and Drop in subelement works strange子元素中的拖放工作很奇怪
【发布时间】:2013-03-22 07:30:14
【问题描述】:

我已经构建了一个这样的拖放系统: 这是一个可以放入可编辑 Div 的列表: 列表代码是这样的:

<li class='file'>test<li>
$("li.file").bind("dragstart",function(e){
e.originalEvent.dataTransfer.effectAllow='move';
e.originalEvent.dataTransfer.setData('text',$(this).text());
});`    

然后我有一个 Div 来获取拖动项:

<div id='editor'><div>
$("#editor").bind('dragover',function(e){
e.originalEvent.dataTransfer.dropEffect="move";
if(e.preventDefault){
e.preventDefault();
});
$("#editor").bind('drop',function(e){
    if (e.target==$('#editor')[0]){
#add a sub <div class="editorcontent"> under the <div id='editor'>
}

那些代码工作正常。现在我想在 'div.editorcontent 允许两个不同的editorcontent div切换它们的位置:

$("div.editorcontent").bind("dragstart",function(e){
e.originalEvent.dataTransfer.effectAllow='move';
});
$("div.editorcontent").bind("dragover",function(e){
e.originalEvent.dataTransfer.dropEffect="move";
if(e.preventDefault){
e.preventDefault();
}

});
$("div.editorcontent").bind("drop",function(e){
    alert(e.target);
});

但是那些代码不起作用。我在 chrome 上设置了断点,似乎只有#editor 的拖放事件在使用中。每当我拖动 div.editorcontent 时,都不会发生任何事件。当我将 div.editorcontent 元素放在另一个 div.editorcontent 上时。 chrome进入#editor的drop事件。那么我该如何解决这个问题?

【问题讨论】:

    标签: jquery html


    【解决方案1】:

    问题是当 $.ready 时新添加的 div 不存在,所以这些 div 的新处理程序没有绑定到这些 div。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-15
      • 2016-05-18
      • 2011-05-07
      • 1970-01-01
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多