【问题标题】:Jquery drop callback of droppable method called twice调用两次的可放置方法的Jquery drop回调
【发布时间】:2013-10-13 20:13:41
【问题描述】:

我对以下事件有看法。视图 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 元素时,drop 回调函数被调用了两次。

如何解决这个问题。

【问题讨论】:

    标签: jquery jquery-ui backbone.js


    【解决方案1】:

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

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

    代码:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-06
      • 2012-06-10
      • 1970-01-01
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      相关资源
      最近更新 更多