【问题标题】:Jquery-ui - combining Sortable with Droppable - droppable function fires when sortingJquery-ui - 将 Sortable 与 Droppable 相结合 - 排序时触发 droppable 函数
【发布时间】:2014-03-23 06:44:47
【问题描述】:

我在一个页面上有两个可排序的无序列表,它们是通过 web 服务调用填充的。

其中一个列表由另一个列表填充,通过 jQuery-UI 可拖放/可拖放。

当一个项目被拖放到第二个列表中时,会调用 droppable 函数来更新数据库。这很好用。

但是,我也希望这个列表是可排序的。当我对列表进行排序时,Sortable 和 Droppable 函数都会被调用,我只想要可排序的。

如何对第二个列表进行排序而不调用 droppable?

代码:

$("#MyDiv1 li").draggable({
    connectToSortable: "#MyDiv2",
    revert: "invalid",
    helper: function () {
       //other stuff here
    }
}).disableSelection();


$("#MyDiv2").sortable({
    connectWith: "ul",
    revert: true,
    update: function (event, ui) {
        //update new sort through webservice call
    }
}).droppable({
          tolerance: 'pointer',
          drop: function (event, ui) {
              //add dropped item through web service call
          }
      })

【问题讨论】:

  • 请提供足够的代码来重现问题,例如html、css 或最小的演示,例如jsfiddle
  • 您对一个 5 个月大的问题投了反对票,该问题在 cmets 中得到了回答,因为没有 html 和 jquery 代码?我的问题的第一行说明了 html 中的内容,并且提供的代码对于任何了解 jquery 的人都足以知道发生了什么。此外,您可能希望在自己的问题中做同样的事情,因为许多问题不包含确切相关的 html 或某人可以复制和粘贴的 jsfiddle。

标签: jquery jquery-ui jquery-ui-sortable


【解决方案1】:

能够找到解决方法,但我确信有更好的方法。

在 drop 函数下,我对父 ID 添加了检查以确保它不是 MyDiv2

  var ParentID = ui.draggable.context.parentNode.id;

  if (ParentID != "MyDiv2") {

    //drop code
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 2012-01-14
    • 2011-09-11
    • 2011-07-26
    • 2011-10-11
    • 2013-11-12
    相关资源
    最近更新 更多