1

我对以下事件有看法。视图 ID 是“文件夹块”。我的元素是 View 是这样的:

<ul>
  <li></li>
  <li></li>
  <li></li>
 </u>
 <ul>
     <li>
       <ul></ul>
     </li>
  </ul>

以下是主干中的事件。

  events{
   "mousedown .all-folders": "dragCustomFolders"
  },
  dragCustomFolders: function(e){
    $('#folders ul li').draggable({
      cursor: 'move',
      drag: this.dragElement,
      revert: "invalid"
    });

    $('#folders li').droppable({
      drop: this.cardDrop,
    });
  }

当我将一个 li 从一个 ul 拖到另一个 ul 时,只会调用一次。当我将 li 元素拖动到同一 ul 元素中的另一个 li 元素时,下拉回调函数被调用两次。

如何解决这个问题。

4

1 回答 1

5

尝试greedy在可放置定义上将选项设置为 true:

默认情况下,当一个元素被放置在嵌套的 droppable 上时,每个 droppable 都将接收该元素。但是,通过将此选项设置为 true,任何父 droppables 都不会接收该元素。drop 事件仍然会正常冒泡,但可以检查 event.target 以查看哪个 droppable 接收到可拖动元素。

代码:

$('#folders li').droppable({
    drop: this.cardDrop,
    greedy: true
});
于 2013-10-07T11:30:38.960 回答