0

我制作了一个 UI,在其中创建了一个 div,其中有多个 div 或插槽(比如说)。这些插槽是使用 Knockout.js 生成的,我的意思是这些插槽绑定在滑块值上。根据滑块的值,它生成动态插槽。我担心的是我想在这些 div 上放置其他外部元素,但是当我这样做时,它会被放置在最后一个 div 上,如果我再次放置它,它会再次添加到 Slot.bt 的上部 div 我希望它必须被丢弃在我丢弃它的地方,即在同一个位置。它也可以在两个 div 的中间。请建议我。我的代码如下:

<div class="slotSystem">
                        <div class="slotMachine" data-bind="foreach:slots,style:{height:height()+'px'}">
                            <div class="slot">
                                <div class="slot-info drop" data-bind="text:formatedTime,style:{height:height()+'px'}"></div>
                            </div>
                        </div>
                    </div>
$(".drop").droppable({
            accept: ".draggable",
            tolerance:"pointer",
            drop: function (event, ui) {
                console.log("drop");
                var dropped = ui.draggable;
                var droppedOn = $(this);
                $(dropped).detach().css({ top: 0, left: 0 }).appendTo(droppedOn);

                $('#clear-organizer').show();
                $('#saveplaylist').show();
                $(dropped).height(10);

                var closebtn = ui.draggable.find(' .close');
                $(closebtn).addClass('close-organizer');


            }
        });
4

1 回答 1

0

它完全按照您在代码中告诉它的操作。为了让它按照你在问题中写的那样做,你只想让.slotMachineDIV 成为可丢弃的,而不是.slot-info(甚至.slot就此而言)。

编辑:如果您想找出您放置在哪个 DIV 上并将拖动的 DIV 放在它旁边,请保留.slots droppable 并在您的放置处理程序中使用.insertAfter().insertBefore()(将您的元素插入目标之外droppedOn)而不是.appendTo()您现在使用(这会将您的元素插入目标中droppedOn)。

于 2013-07-11T09:11:54.580 回答