如何将第一个拖动的JQuery Sortable项放在beforeStop事件的动态生成的div中

时间:2015-03-23 21:06:54

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

所以,问题是,我将我的可排序类别放入手风琴类别中,如下所示:

http://i.stack.imgur.com/UiRKa.jpg

手风琴类别不是可排序的,只是它们内部的标签,我左边的容器连接到右边的容器。

当我把它放在"我想要什么"容器,我这样做是因为我想在"我想要什么"上创建一个相同的手风琴类别。容器,里面有拖动的标签。

问题是,当我拖动标签并生成手风琴时,它可以正常工作!但不是第一次,只是第二次尝试。

这是第一次不能工作,因为我无法找到一种方法来生成手风琴"我想要什么"容器 BEFORE 拖动的标签,因此它可以放在手风琴上。

这是我的代码:

beforeStop: function(event, ui) {

  var categ = ui.item.attr('data-categoria');
  console.log("Categoria do Objeto: " + categ);

  if (categ == 'credenciamento') {
    var container = $("#documentos_usados");
    var newdiv = $("#doc_usado_credenciamento");
    if (container.find(newdiv).length == 0) {
      var div_credenciamento = "<div id='doc_usado_credenciamento' class='single-doc'><div class='title-single-doc'>Credenciamento</div></div><div><ul id='documentos_disponiveis' class='sub-accordion-doc allow-sort' style='margin-top:0px !important'></ul></div>";
      container.append(div_credenciamento);
      newdiv.append(ui.item);
    };
  }
}

我不知道我所用的信息是否完整,如果没有,我会根据你的要求更新帖子。

此外,对于任何英语错误感到抱歉,它不是我的母语。

谢谢大家!

1 个答案:

答案 0 :(得分:0)

嘿,有一个可用的掉落事件。因此,您实际上必须调用drop函数,而不是 beforeStop 。在停止之前将调用此方法。所以你可以这样做:

function drop (event, ui){
var categ = ui.item.attr('data-categoria');
  console.log("Categoria do Objeto: " + categ);

  if (categ == 'credenciamento') {
    var container = $("#documentos_usados");
    var newdiv = $("#doc_usado_credenciamento");
    if (container.find(newdiv).length == 0) {
      var div_credenciamento = "<div id='doc_usado_credenciamento' class='single-doc'><div class='title-single-doc'>Credenciamento</div></div><div><ul id='documentos_disponiveis' class='sub-accordion-doc allow-sort' style='margin-top:0px !important'></ul></div>";
      container.append(div_credenciamento);
      newdiv.append(ui.item);
    };
  }
}

我只能帮助您放置代码的位置。你必须按照自己的意愿制作逻辑。否则,我需要一个正确的UI元素选择器的想法。