带有 Dragula 的多个容器,但将项目限制在它们的容器中

Loa*_*... 4 javascript dragula

我有一个包含多个 Dragula 容器的页面。容器中ul有一堆li。我希望用户能够li在他们的容器中重新排序's,但我不希望lifrom 一个容器可以拖动到另一个容器。现在我可以将 each 拖到liany ul。如何将li's限制为仅使用其原始容器?

html:

<ul id="first">
  <li>for first group only</li>
  <li>for first group only</li>
  <li>for first group only</li>
</ul>

<ul id="second">
  <li>for second group only</li>
  <li>for second group only</li>
  <li>for second group only</li>
</ul>

<ul id="third">
  <li>for third group only</li>
  <li>for third group only</li>
  <li>for third group only</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

js:

var first = '#first';
var second = '#second';
var third = '#third';

var containers = [
  document.querySelector(first),
  document.querySelector(second),
  document.querySelector(third)
];

dragula({
  containers: containers,
  revertOnSpill: true,
  direction: 'vertical'
});
Run Code Online (Sandbox Code Playgroud)

谢谢

小智 6

您可以指定一个options.accepts方法来检查元素是否被拖动到它来自的同一个容器。

例如:

js:

dragula({
  containers: containers,
  revertOnSpill: true,
  direction: 'vertical',

  accepts: function (el, target, source, sibling) {
      // accept drags only if the drop target is the same
      // as the source container the element came from
      return target == source;
  }
});
Run Code Online (Sandbox Code Playgroud)