无法成功将元素从一个div分别拖放到另一个div

时间:2019-01-24 14:15:34

标签: javascript jquery html css asp.net-mvc-4

我希望创建两个容器,其中第一个包含要在用户希望时拖放到第二个元素的元素。实际上,我成功地显示了带有相应元素的两个容器,但是当我尝试将其中一个单独拖到第二个容器中时,整个块继续进行。

下面是我的代码:

$(document).ready(function () {

    $('.box-item').draggable({
        cursor: 'move',
        helper: "clone"
    });

    $("#container1").droppable({
        drop: function (event, ui) {
            var itemid = $(event.originalEvent.toElement).attr("itemid");
            $('.box-item').each(function () {
                if ($(this).attr("itemid") === itemid) {
                    $(this).appendTo("#container1");
                }
            });
        }
    });

    $("#container2").droppable({
        drop: function (event, ui) {
            var itemid = $(event.originalEvent.toElement).attr("itemid");
            $('.box-item').each(function () {
                if ($(this).attr("itemid") === itemid) {
                    $(this).appendTo("#container2");
                }
            });
        }
    });

});
/* Styles go here */

.box-container {
    height: 200px;
}

.box-item {
    width: 100%;
    z-index: 1000
}
<div class="row">

    <div class="col-lg-11">

        <div class="row">
            <div class="col-lg-12">
                @using (Html.BeginForm("", "", FormMethod.Post, new { id = "formAssignVehicles" }))
                {
                    <fieldset>
                        <legend>Affecter des voitures par glisser-déposer</legend>
                        @{ }
                                    <div class="col-xs-3">
                                        <div class="panel panel-default">
                                            <div class="panel-heading">
                                                <h3 class="panel-title">Liste des véhicules</h3>
                                            </div>
                                            <div id="container1" class="panel-body box-container">
                                                @foreach (var voiture in Model.ListeVoituresAffectees)
                                                {
                                                    <div itemid="itm-1" class="btn btn-default box-item">
                                                        @Html.DisplayFor(model => voiture.MarqueVoiture.Libelle)
                                                    </div>
                                                }

                                            </div>
                                        </div>
                                    </div>
                               

                                    
                                    <div class="col-xs-3">
                                        <div class="panel panel-default">
                                            <div class="panel-heading">
                                                <h3 class="panel-title">Liste des véhicules affectées</h3>
                                            </div>
                                            <div id="container2" class="panel-body box-container"></div>
                                        </div>
                                    </div>

                        <input type="button" value="Affecter les voitures" />
                    </fieldset>
                }
            </div>
        </div>

    </div>
</div>

不知道错字在哪里。请帮忙!

1 个答案:

答案 0 :(得分:1)

在您的@foreach语句中,所有元素都被赋予相同的itemid“ itm-1”,因此它们都以相同的方式受到影响。找到一种为每个变量赋予唯一itemid的方法,这应该可以解决问题。