javascript - 使用 appendChild 时,SortableJS 多拖不起作用
问题描述
我有两个动态创建的元素列表,问题组(左)和问题(右)。我希望能够将右侧列表中的多个问题拖到左侧的问题组中,并将这些问题附加到适当的问题列表中。当我单步执行代码时,问题似乎被附加了,但我相信 SortableJS 会以某种方式出错或取消附加。
问题可能在于混合普通 JS 和 SortableJS。这个普通的 JS 事件具有我希望获得的 appendChild 代码:
document.addEventListener("drop", function (event, target) {
event.preventDefault();
//Element being moved.
var data = event.dataTransfer.getData("Text/html");
if (event.target.classList.contains("question-group-item") && !$(data).get(0).classList.contains("question-group-item")) {
//Blink group item being dropped into.
$(event.target).effect("highlight", { color: "#0093d2" }, 3000);
//Get group being dropped to.
var groupID = $(event.target).attr('data-group-id');
//Get all items being dropped.
sortableArray.forEach(function (questionElem) {
$(questionElem).attr('data-group-id', groupID);
document.getElementById("list-tab-" + groupID).appendChild(questionElem);
});
//Set new group ID.
//document.getElementById($(data).attr('id')).setAttribute('data-group-id', groupID);
//document.getElementById("list-tab-" + groupID).appendChild(document.getElementById($(data).attr('id')));
}
updateObjects();
});
这是一个 JS Bin:
解决方案
推荐阅读
- animation - SwiftUI 动画影响内部对象
- blazor - Inserting abstract Blazor component, open-closed principle
- python - Python px.choropleth mapbox change between variables
- php - 升级到 Laravel 7 时,symfony/http-kernel 5.0.x-dev 与 symfony/translation[v4.3.8] 冲突
- node.js - 为什么庆祝请求验证失败?
- c# - WPF: how to set window height equal to Grid height
- neo4j - Is it possible to increase Database storage in Neo4j Aura
- url - How to change the default URL into custom URL in Mendix?
- ruby-on-rails - 无法从关联表中删除记录(Rails)
- php - PHP 等效于 openssl dgst -sha1 -hmac KEY -binary