问题描述
$('#dropzone').droppable({
activeClass: 'active',hoverClass: 'hover',accept: ":not(.ui-sortable-helper)",drop: function (e,ui) {
let item = $(ui.draggable);
ui.draggable.hide();
let add_element = '<div class="drop-item" data-ui="dui"><details><summary>' + item.text() + '</summary>' +
'<div>' +
'<label>More test drop</label>' +
'<input type="text" id="members_gym_objectives" name="members_gym_objectives[]" value="' + item.text() + '"/>' +
'</div>' +
'</details>' + '<button type="button" onclick="$(this).parent().detach();ui.draggable.show();" class="btn btn-danger btn-xs remove"><i class="far fa-trash-alt p-0"></i></button>'
'</div>'
$(this).append(add_element);
},over: function (event,ui) {
ui.draggable.hide();
}
}).sortable({
items: '.drop-item',sort: function () {
$(this).removeClass("active");
}
});
我想在删除按钮中使用 ui.draggable.show() 函数,这会将隐藏的可拖动标签更改为可见......但它不起作用
解决方法
考虑以下示例。
matrix[3][2]
1
$(function() {
$("#tags > div").draggable();
$('#dropzone').droppable({
activeClass: 'active',hoverClass: 'hover',accept: ":not(.ui-sortable-helper)",drop: function(e,ui) {
var item = $(ui.draggable);
item.hide();
var dropItem = $("<div>",{
class: "drop-item","data-ui": "dui"
}).appendTo(this);
var details = $("<details>").appendTo(dropItem);
$("<summary>").html(item.text()).appendTo(details);
$("<div>").appendTo(details);
$("<label>").html("More Tags").appendTo($("div",details));
$("<input>",{
type: "text",name: "members_gym_objectives[]",value: item.text()
}).appendTo($("div",details));
var removeButton = $("<button>",{
type: "button",class: "btn btn-danger btn-xs remove"
}).appendTo(dropItem);
$("<i>",{
class: "far fa-trash-alt p-0"
}).appendTo(removeButton);
removeButton.click(function() {
item.show();
});
}
}).sortable({
items: 'div.drop-item',sort: function() {
$(this).removeClass("active");
}
});
});
根据您的描述,这将隐藏原始文件,直到单击删除按钮。