我想用jQuery实现一个解决方案,其中一个按钮可以拖动到某个div元素。当它被放入该div时,它应该有自定义的html。
我发现了一个关于jsfiddle的例子,但不幸的是SO没有提供与jsfiddle的链接。我在这里粘贴所有代码:
HTML
<ul id="left-pane">
<li><img src="https://www.google.com/images/srpr/logo3w.png" /></li>
<li><img src="https://www.google.com/images/srpr/logo3w.png" /></li>
<li><img src="https://www.google.com/images/srpr/logo3w.png" /></li>
</ul>
<ul id="right-pane">
</ul>
CSS
#left-pane
{
border: 1px solid black;
min-width: 100px;
min-height: 100px;
}
#right-pane
{
border: 1px solid black;
min-width: 100px;
min-height: 100px;
}
JavaScript / jQuery
$("#left-pane li").draggable({
containment: '#gbox',
cursor: 'move',
helper: 'clone',
scroll: false,
connectToSortable: '#right-pane',
appendTo: '#right-pane',
start: function () {},
stop: function (event, ui) {}
}).mousedown(function () {});
$("#right-pane").sortable({
sort: function () {},
placeholder: 'ui-state-highlight',
receive: function () {},
update: function (event, ui) {}
});
$("#right-pane li").live('dblclick', function () {
$(this).remove();
})
$("#right-pane").droppable({
accept: "#left-pane li",
accept: ":not(.ui-sortable-helper)",
drop: function (event, ui) {
if ($(ui.draggable).find('.single-item').length == 0)
{
$(ui.draggable).append("<div class='single-item'><input type='text' class='item-title' /><br /><textarea class='item-text'></textarea></div>");
}
}
});
$("#left-pane").droppable({
accept: "#right-pane li",
drop: function (event, ui) {}
});
$("ul, li").disableSelection();
我想要类似于上面的内容,但我想将图像更改为某个按钮而不是UI元素,是否可以将其更改为普通div?
任何人都可以玩这个小提琴并为我提供一个简单的拖放解决方案吗?
提前致谢。
答案 0 :(得分:0)
我想,我通过上面的代码自己找到了解决方案。我在按钮上做错了,因为按钮已经点击了事件映射,这就是为什么当我试图拖动按钮时它不能用于拖动事件。我刚刚尝试添加div元素,它显示了像按钮(用css设计),它的工作方式与我想要的方式相同。
我唯一需要改变的是html代码:
<ul id="left-pane">
<li><div align="center" style="width:100px;border:3px solid #ddd; padding:5px;cursor:move;background:#eee;">Drag Me</div>
</ul>
<ul id="right-pane">
</ul>
以下是我看到的最终解决方案:http://jsfiddle.net/Y7RmR/77/