我有多种颜色的列表,橙色、蓝色、绿色。只有两个.droppable()
地方,在我的实际应用程序中,这是团队 A 与团队 B,在我的小提琴示例中,我使用颜色。你可以在这里看到FIDDLE。
我不知道如何编写它,以便每个框中只允许一种颜色(已经在里面的当前颜色被发送回菜单列表,新的可拖动项成为当前颜色)
我确信通过不断的摆弄和谷歌搜索我可以弄明白,但希望有人经历过这种情况,这似乎很常见(在这上面找不到任何 ATM)。
这是 Jquery 和 HTML 的片段
jQuery:
$('#menu li').draggable({
helper: "clone",
containment: "document"
});
$('.left .show, .right .show').droppable({
drop: function (event, ui) {
ui.draggable.detach();
$(this).addClass(ui.draggable.attr('data-team'))
}
});
HTML:
<div id="jsFiddle">
<div id="open-menu">< Open Menu</div>
<div id="menu">
<ul>
<li data-team="orange">orange</li>
<li data-team="blue">blue</li>
<li data-team="green">green</li>
</ul>
</div>
<div id="display">
<div class="left">
<div class="show"></div>
</div>
<div class="right">
<div class="show"></div>
</div>
</div>
</div>
再次一个应该解释所有内容的小提琴,打开菜单(我知道可拖动元素的一些 z-index 问题会调整它)将一种颜色拖到每个框中,然后你只剩下一种颜色。使用剩余的颜色,您应该能够将其拖到任一框中,并且该框中的任何颜色都将发送回菜单。
我不确定是否有reattach
功能,但基本上我需要将被覆盖的颜色重新附加回菜单,然后分离新颜色。
看起来很简单,我可能会弄清楚,但这对你们中的一些人来说可能是一个不错的小刷子。
我更新的小提琴 仍然需要调整:我在这里摆弄和摆弄了一些是我想出的http://jsfiddle.net/3X5jW/5/
我还是想看答案,奖励最好的答案,也许有比我的更简单的解决方案。