第二次拖动div的同一元素li不应该拖放

时间:2012-11-08 08:20:02

标签: jquery html5 jquery-ui-draggable jquery-ui-droppable

将元素从<div id="catalog" >拖放到框中,即<div id="dialogIteration">工作正常。但是当第二次拖放相同的元素时,它很容易被删除但是我想要的是什么不应该删除它并提醒“Statement已经退出”。

示例代码http://jsfiddle.net/coolanuj/7683X/28

2 个答案:

答案 0 :(得分:2)

draggable中使用一个标记,表示它是否已被放入对话框中。

drop: function (evt, ui) {
    // logic
    if (ui.draggable.attr('data-dropped')) {
        // don't perform the drop
    } else {
        // perform the drop
        ui.draggable.attr('data-dropped', true);
    }
}

如果您只希望当前被删除的那个不再是droppable,请在成功删除后重置draggable属性。

drop: function (evt, ui) {
    // logic
    if (ui.draggable.attr('data-dropped')) {
        // don't perform the drop
    } else {
        // perform the drop
        $('tag[data-dropped=true]').attr('data-dropped', false);
        ui.draggable.attr('data-dropped', true);
    }
}

答案 1 :(得分:0)

以下是一个示例:http://jsfiddle.net/7683X/35/

我使用:contains选择器来检查文本是否已被放入droppable元素中:

drop: function(event, ui) {
    if($("#dialogIteration ol:contains('"+ui.draggable.text()+"')").length > 0)
    {
       alert("Statement already exits");
       return false;
    }

    ...
}