jQuery两次调用droppable方法的drop回调

Cin*_*lla 1 jquery jquery-ui backbone.js

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

<ul>
  <li></li>
  <li></li>
  <li></li>
 </u>
 <ul>
     <li>
       <ul></ul>
     </li>
  </ul>
Run Code Online (Sandbox Code Playgroud)

以下是骨干事件。

  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,
    });
  }
Run Code Online (Sandbox Code Playgroud)

当我将一个li从一个ul拖到另一个ul时,它仅被调用一次。当我将li元素拖到同一ul元素内的另一个li元素时,回调函数被调用两次。

如何解决此问题。

Irv*_*nin 5

尝试greedy在droppable定义中将option 设置为true:

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

码:

$('#folders li').droppable({
    drop: this.cardDrop,
    greedy: true
});
Run Code Online (Sandbox Code Playgroud)