无法将动态创建的droppable中的draggable拖放到另一个droppable中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法将动态创建的droppable中的draggable拖放到另一个droppable中相关的知识,希望对你有一定的参考价值。
请参阅jsfiddle。
我想添加一个新的div
(Row in my example
),可以通过拖放(jQuery UI)添加到另一个div
(Button in my example
)。
我在辅助函数($row
)中创建了新的div(addNewRow
)并添加了新的函数来拖放另一个div,就像这样:
$('.rowDashboard').draggable({
containment: '#content',
cursor: 'move',
helper: addNewRow,
revert: "invalid",
});
// helper function
function addNewRow() {
$row = $(document.createElement('div'));
$row.attr("id","droppableDiv");
$row.html("drop here");
$row.droppable({
accept: ".buttonDashboard",
// greedy: true,
drop: function (ev, ui) {
alert('ok');
},
});
return $row;
}
我期望ok
消息会出现div
与buttonDashboard
类div
与rowDraggable
,但drop
函数不会发射。
在辅助函数中添加drop
函数是否正确?
如果不正确,那么解决方案是什么?
谢谢你。
答案
我修改了你的jsfiddle和created a new DEMO which works
我已经从droppable
函数中删除了helper
初始化代码,重新构建了您的代码。
这是修改后的代码:
var rowIndex = 0;
var buttonIndex = 0;
$(init);
function init() {
$('.rowDashboard').draggable({
containment: '#content',
cursor: 'move',
helper: addNewRow,
revert: "invalid",
});
$('#content').droppable({
greedy: true,
accept: ".rowDashboard",
drop: function (ev, ui) {
ui.helper.attr('style', '');
$(ui.helper).addClass('rowDraggable');
$item = $(ui.helper).clone();
$item.appendTo('#content');
//console.log('dropped');
$item.droppable({
accept: ".buttonDashboard",
greedy: true,
drop: function (ev, ui) {
alert('ok');
},
});
},
});
//------- buttonDraggable -----------
$('.buttonDashboard').draggable({
//containment: '#content',
cursor: 'move',
helper: addNewButton,
//helper: "clone"
});
}
function addNewButton() {
buttonIndex++;
return '<input type=\'button\' value=\'button ' + buttonIndex + ' \'> </input>';
}
function addNewRow() {
$row = $(document.createElement('div'));
//$row.attr("id","droppableDiv");
$row.html("drop here");
return $row;
}
以上是关于无法将动态创建的droppable中的draggable拖放到另一个droppable中的主要内容,如果未能解决你的问题,请参考以下文章
jQuery UI 的贪婪 droppable 无法按预期工作
如何在一个页面中动态放置多个Droppable来接受不同的Draggable
Jquery UI Droppable revert不能再次删除
使用 .droppable 拖放到 div 中时,jQuery UI 删除元素