javascript - 将项目放在可排序区域上时如何删除可排序区域的文本?

标签 javascript jquery jquery-ui drag-and-drop jquery-ui-sortable

我有以下代码来执行元素的排序和拖放。在这里我无法删除“在此处拖放链接”。从 div 当项目被删除时。

<div class="mega-menu-container sortable ui-sortable">
    Drag and drop link here.
</div>

当我运行时

stop: function(event, ui) {
    var item = $(ui.item);
    if ($sender !== "") {
        if ($(this).text().length > 0) {
           $(this).text("");
        }
    }

在停止事件中,它不会添加掉落的元素。

var $receiver = "";
var $sender = "";
$(".sortable").sortable({
    start: function(event, ui) {
        $receiver = "";
        $sender = "";
    },
    connectWith: ".sortable",
    placeholder: "ui-state-hover",
    receive: function(event, ui) {
        $sender = ui.sender;
        $receiver = $(this);
        $receiver.text().replace("Drag and drop link here.", "");
    },
    stop: function(event, ui) {
        var item = $(ui.item);
        if ($sender !== "") {
            //if ($(this).text().length > 0) {
            //    $(this).text("");
            //}
        }
    },
    cursor: "move"
}).disableSelection();

$(".menu-items>.menu-item[data-type='link']").draggable({
    helper: "clone",
    connectToSortable: ".sortable",
    cursor: "move",
    start: function(event, ui) {
        $sender = $(this).parent();
    },
    revert: "invalid"
});

$(".menu-items>.menu-item[data-type='container']").draggable({
    helper: "clone",
    connectToSortable: ".sortable>[data-level='1']",
    placeholder: "ui-state-hover",
    cursor: "move",
    start: function(event, ui) {
        $sender = $(this).parent();
    },
    revert: "invalid"
});
.menu-items > .menu-item {
    margin: 0 15px;
    padding: 15px;
    min-height: 30px;
}

.sortable {
    border: dashed 1px rgba(9, 9, 9, 0.3);
    padding: 20px !important;
}

.menu-item {
    background: #fff;
    -webkit-box-shadow: 0 0 15px rgba(0, 0, 0, 0.08);
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.08);
    color: rgba(0, 0, 0, 0.65);
    border: 1px solid #ccc !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js"></script>
<div class="menu-items" style="widht:30%;">
    <div class="menu-item" data-type="link" style="float: left;widht:40%;">
        <i class="fa fa-arrows" aria-hidden="true"></i>
        <div class="title">Link</div>
    </div>
    <div class="menu-item ui-draggable" data-type="container" style="float: left;widht:40%;">
        <i class="fa fa-arrows" aria-hidden="true"></i>
        <div class="title">Container</div>
    </div>
</div>
<div style="clear:both;"></div>
<div class="mega-menu-container sortable ui-sortable">
    Drag and drop link here.
</div>

最佳答案

如下改变你的接收函数

receive: function(event, ui) {
    $sender = ui.sender;
    $receiver = $(this);
    $replace_text = $receiver.text().replace("Drag and drop link here.", "");
    $receiver.text($replace_text);
}

工作 fiddle here

关于javascript - 将项目放在可排序区域上时如何删除可排序区域的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53117288/

相关文章:

javascript - 如何检查手机是否至少使用过一次Google map

jquery - ngRoute 在页面之间随机切换

php - jQuery Ajax冗余提交数据

css - 使用nuget安装时jQuery UI组合包下载在哪里

javascript - 添加 css 过渡时间以使用 javascript 切换类

javascript - npm 说它不是有效的 json 但 jsonlint.com 说它是有效的

javascript - 在 React 中映射时出现意外标记

javascript - 如何在页面url更改时删除cookie,但在jquery刷新时不删除​​?

jquery - fancybox onClosed 回调不起作用

javascript - 随时随地在 jQuery 对话框中添加并初始化 jQuery Datepicker