【发布时间】:2022-10-18 15:15:37
【问题描述】:
我有一堆用灰色框表示的用户。我想将这些用户从一列移到另一列(浅蓝色)。每列代表用户的不同状态。
可拖动 (https://github.com/Shopify/draggable) 功能已经在工作,我可以得到源位置和商品编号那被拖了。 但我不知道如何获取目标列的信息。
到目前为止,这是我的代码:
var containers = document.querySelectorAll(".draggable-zone");
if (containers.length === 0) {
return false;
}
var swappable = new Sortable.default(containers, {
draggable: ".draggable",
handle: ".draggable .draggable-handle",
mirror: {
//appendTo: selector,
constrainDimensions: true
}
});
swappable.on('drag:start', (event) => {
// works
});
swappable.on('drag:stop', (event) => {
console.log(event);
console.log(event.source.id); // return user id
console.log(event.sourceContainer.id); // return source column id (status)
});
<script src="https://cdn.jsdelivr.net/npm/@shopify/draggable@1.0.0-beta.13/lib/draggable.bundle.js"></script>
<div class="content d-flex flex-column flex-column-fluid" id="">
<div class="container-fluid" id="">
<div class="col-xs-12 no-padding s-row" style="display: flex;overflow-x: auto;">
<div id="col_1" class="draggable-zone col-xs-12 col-md-3 p-2 m-2" style="background-color: lightblue">
<h3>Col 1</h3>
<!-- start::draggable user item -->
<div id="user_1" class="draggable text-white rounded p-3 m-1 mb-3 h-100px" style="background-color: lightslategray">
User 1
<div class="draggable-handle">X</div>
</div>
<!-- end::draggable user item -->
<!-- start::draggable user item -->
<div id="user_2" class="draggable text-white rounded p-3 m-1 mb-3 h-100px" style="background-color: lightslategray">
User 2
<div class="draggable-handle">X</div>
</div>
<!-- end::draggable user item -->
<!-- start::draggable user item -->
<div id="user_3" class="draggable text-white rounded p-3 m-1 mb-3 h-100px" style="background-color: lightslategray">
User 3
<div class="draggable-handle">X</div>
</div>
<!-- end::draggable user item -->
<!-- start::draggable user item -->
<div id="user_4" class="draggable text-white rounded p-3 m-1 mb-3 h-100px" style="background-color: lightslategray">
User 4
<div class="draggable-handle">X</div>
</div>
<!-- end::draggable user item -->
</div>
<!-- end::col -->
<!-- start::col -->
<div id="col_2" class="draggable-zone col-xs-12 col-md-3 p-2 m-2" style="background-color: lightblue">
<h3>Col 2</h3>
<!-- start::draggable user item -->
<div id="user_5" class="draggable text-white rounded p-3 m-1 mb-3 h-100px" style="background-color: lightslategray">
User 5
<div class="draggable-handle">X</div>
</div>
<!-- end::draggable user item -->
<!-- start::draggable user item -->
<div id="user_6" class="draggable text-white rounded p-3 m-1 mb-3 h-100px" style="background-color: lightslategray">
User 6
<div class="draggable-handle">X</div>
</div>
<!-- end::draggable user item -->
<!-- start::draggable user item -->
<div id="user_7" class="draggable text-white rounded p-3 m-1 mb-3 h-100px" style="background-color: lightslategray">
User 7
<div class="draggable-handle">X</div>
</div>
<!-- end::draggable user item -->
</div>
<!-- end::col -->
<!-- start::col -->
<div id="col_3" class="draggable-zone col-xs-12 col-md-3 p-2 m-2" style="background-color: lightblue">
<h3>Col 3</h3>
</div>
<!-- end::col -->
<!-- start::col -->
<div id="col_4" class="draggable-zone col-xs-12 col-md-3 p-2 m-2" style="background-color: lightblue">
<h3>Col 4</h3>
</div>
<!-- end::col -->
<!-- start::col -->
<div id="col_5" class="draggable-zone col-xs-12 col-md-3 p-2 m-2" style="background-color: lightblue">
<h3>Col 5</h3>
<!-- start::draggable user item -->
<div id="user_8" class="draggable text-white rounded p-3 mb-3 m-1 h-100px" style="background-color: lightslategray">
User 8
<div class="draggable-handle">X</div>
</div>
<!-- end::draggable user item -->
<!-- start::draggable user item -->
<div id="user_9" class="draggable text-white rounded p-3 mb-3 m-1 h-100px" style="background-color: lightslategray">
User 9
<div class="draggable-handle">X</div>
</div>
<!-- end::draggable user item -->
</div>
<!-- end::col -->
<!-- start::col -->
<div id="col_6" class="draggable-zone col-xs-12 col-md-3 p-2 m-2" style="background-color: lightblue">
<h3>Col 6</h3>
</div>
<!-- end::col -->
</div>
</div>
</div>
此外,我还想在每一列中保存用户的顺序。
可能有一些可以帮助我。
任何帮助表示赞赏。
此致
蒂姆
【问题讨论】:
-
兄弟这里也有同样的问题!
-
等等,我会在这个问题上加个赏金
-
sn-p 不起作用。你,Tim(或 Jishnu Raj)能提供一个可重现的 sn-p 吗?
-
请详细说明您的问题以及工作代码。
标签: javascript html draggable