Javascript jquery只允许删除一个对象 $(“li”).draggable({ 助手:“克隆” }); $(“#div1”)。可拖放({ drop:函数(事件、用户界面){ $(“
”)附录(“#div1”); } }); 我有一个列表中的对象,可以拖放到名为div1的div中。但是当我把一个丢进div的时候,我不想再丢一个。我已经尝试使用带有计数的、for、if和while循环 这将有助于:Javascript jquery只允许删除一个对象 $(“li”).draggable({ 助手:“克隆” }); $(“#div1”)。可拖放({ drop:函数(事件、用户界面){ $(“,javascript,jquery,jquery-ui,jquery-ui-draggable,jquery-ui-droppable,Javascript,Jquery,Jquery Ui,Jquery Ui Draggable,Jquery Ui Droppable,”)附录(“#div1”); } }); 我有一个列表中的对象,可以拖放到名为div1的div中。但是当我把一个丢进div的时候,我不想再丢一个。我已经尝试使用带有计数的、for、if和while循环 这将有助于: $("li").draggable({ helper: "clone" }); $("#div1").droppable({ drop: function (event, ui) {
$("li").draggable({
helper: "clone"
});
$("#div1").droppable({
drop: function (event, ui) {
$("<p></p>").appendTo("#div1");
}
});
这是一个完整的解决方案,它只允许删除一个项目,而且,如果存在一个项目,它将在下一次删除时替换为新项目。(如果有人改变主意,这很有用。打电话就行了
drop: function (event, ui) {
var $this = $(this),
maxItemsCount = 1;
if ($this.children('li').length > maxItemsCount ){
ui.sender.draggable('cancel');
alert("To much items!");
}
}
建议:也许您可以使用jQuery的.one()事件处理程序()。说明:将处理程序附加到元素的事件。对于每个事件类型,每个元素最多执行一次处理程序。使用此方法,我无法将其附加到div,我也尝试了加入append
refreshDragDrop(dragClassName,dropDivId);
refreshDragDrop = function(dragClassName,dropDivId) {
$( "." + dragClassName ).draggable({
connectToSortable: "#" + dropDivId,
helper: "clone",
revert: "invalid"
});
$("#" + dropDivId).droppable({
accept: '.' + dragClassName,
drop: function (event, ui) {
var $this = $(this),
maxItemsCount = 1;
if ($this.children('div').length == maxItemsCount ){
//more than one item,just replace
$(this).html($(ui.draggable).clone());
} else {
$(this).append($(ui.draggable).clone());
}
}
});
}