【发布时间】:2019-07-07 15:03:44
【问题描述】:
我正在使用可拖动和可排序的 jquery UI 来实现拖放功能。当用户将字段拖到可放置区域时,我正在运行一个函数。 这是我的代码
let initDrag = () => {
$( ".draggable" ).draggable({
connectToSortable: '.droppable',
cursor: "crosshair",
helper: "clone",
opacity: 0.35,
snap: true,
refreshPositions: true
})
}
let initSortable = () => {
$( ".droppable" ).sortable({
update: afterDrop
});
}
let afterDrop = (event, ui) => {
let fieldID = ui.item.attr("data-id");
getFieldData(fieldID).then(fieldData => {
fieldData[0].field.field_id = Date.now();
formBuildingJSON.form_fields.push(fieldData[0]);
console.log(formBuildingJSON);
})
}
我只想在用户拖动可放置区域中的字段时运行此 afterDrop() 函数。但是,只要用户对元素进行排序,此函数也会触发。那么如何检测该字段是否已被拖入或排序。我正在创建一个存储所有拖动元素的 id 的数组。现在,当用户对元素进行排序时,我希望重新排序这个数组。我该怎么做?
【问题讨论】:
-
你能加一个小提琴或钢笔吗?
标签: javascript jquery jquery-ui drag-and-drop