将类添加到jQuery draggable和droppable中的可放置项

时间:2017-12-15 20:25:09

标签: javascript jquery jquery-ui jquery-ui-draggable

我试图添加一类"崩溃"当项目被放入可放置区域时到特定div。我已经成功地从一个可放置的项目中删除了一个类,但添加一个类是暗示我的。有人可以帮忙吗?

的jQuery

    $(function () {
        var removeIntent;
        $(".drag li").draggable({
            cursor: "move",
            revert: "invalid",
            helper: "clone",
        });
        //Droppable function
        $(".droppable").droppable({
            activeClass: "ui-state-hover",
            hoverClass: "ui-state-active",
            accept: ":not(.ui-sortable-helper)",
            drop: function (event, ui) {

                var dropId = ui.draggable.attr("id");
                var targetCount = $(this).find("[id*='clone']").length;
                var $dropElemClone = ui.draggable.clone();
                $dropElemClone
                    .attr("id", dropId + "-clone-" + (targetCount + 1))
                    .appendTo(this)
                    .addClass("form-btn-wide")
                    .find(".elementHidden")
                    .removeClass("elementHidden");                    
            }



            //Sorting function
        }).sortable({
            items: "> li:not(.placeholder)",
            sort: function () {
                $(this).removeClass("ui-state-default");
            },
            over: function () {
                removeIntent = false;
            }, //Remove function
            out: function () {
                removeIntent = true;                    
            },
            beforeStop: function (event, ui) {
                if (removeIntent == true) {
                    ui.item.remove();
                }
            }
        })
    });

可放弃HTML

<div class="createForm droppable">
<div class="col-md-12 text-center">
    <p>Onboarding glory aways you, %User.Name%. Go forth and automate.<br /></p>
    <div class="panel panel-default col-md-offset-2 col-md-8">
        <div class="panel-body">
            <p>How do you want to trigger this<br />  onboarding sequence?</p>
            <input type="button" class="btn btn-sm btn-primary" value="Set enrollment" />
        </div>
    </div>
</div>
<div class="col-md-offset-5 col-md-2 text-center">
    <i class="fa fa-2x fa-arrow-down" aria-hidden="true"></i>
</div>

可拖动HTML

<ol id="two-col" class="drag">
<li class="btn form-btn draggable">
    <div id="cardtitle" class="cardtitle">
        <div>
            <i class="fa fa-check-circle fa-3x text-primary"></i>
        </div>
        <div class="row m-t-md">
            <p class="text-primary text-center"><strong>Complete<br /> Vendor Profile</strong></p>
        </div>
    </div>
    <div class="panel panel-default col-md-offset-2 col-md-8 elementHidden text-center">
        <div class="panel-body">
            <div>
                <i class="fa fa-check-circle fa-3x text-primary"></i>
            </div>
            <div class="row m-t-md">
                <p class="text-primary text-center"><strong>Complete Vendor Profile</strong></p>
            </div>
        </div>
    </div>
    <div class="col-md-offset-5 col-md-2 text-center elementHidden">
        <i class="fa fa-2x fa-arrow-down" aria-hidden="true"></i>
    </div>
</li>
</ol>

我已经尝试过拨打卡片名称和课程来添加崩溃等级,但是没有运气。有没有人有任何想法?

1 个答案:

答案 0 :(得分:1)

我能够通过添加以下订单项来实现它:

$("#undefined-clone-" + (targetCount + 1)).find('.cardtitle').hide();

下拉

drop: function (event, ui) {

                var dropId = ui.draggable.attr("id");
                var targetCount = $(this).find("[id*='clone']").length;
                var $dropElemClone = ui.draggable.clone();
                $dropElemClone
                    .attr("id", dropId + "-clone-" + (targetCount + 1))
                    .appendTo(this)
                    .addClass("form-btn-wide")
                    .find(".elementHidden")
                    .removeClass("elementHidden");
                $("#undefined-clone-" + (targetCount + 1)).find('.cardtitle').hide();
            }