使用ajax删除后,拖动的项目会消失

时间:2011-05-20 07:52:30

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

我真的遇到了jQuery拖放问题。所以让我稍微解释一下情况。

我想要实现的目标如下:当你在时间轴上拖动其中一个泪珠时,div中的id和它所放置的项目的id应该在删除后立即存储在我的数据库中。 / p>

我设法用ajax做到了,这是代码:

$('#dropzone ul li').droppable({
  drop: function(event, ui) {
        var day = $(".confirmday").val();
        var $drag = $(ui.draggable),
        var $drop = $(this);

        var drag = $drag.attr('id');
        var drop = $drop.attr('id');

        console.log(drag);

        if(drag == 'drag1')
        {
            drag = 'Medicijnen';
            werkwoord = ' ingenomen om ';
        }
        else if(drag == 'drag2')
        {
            drag = 'Snack';
            werkwoord = ' gegeten om ';
        }
        else if(drag == 'drag3')
        {
            drag = 'Frisdrank';
            werkwoord = ' gedronken om ';
        }
        else if(drag == 'drag4')
        {
            drag = 'Thee';
            werkwoord = ' gedronken om ';
        }
        else if(drag == 'drag5')
        {
            drag = 'Koffie';
            werkwoord = ' gedronken om ';
        }
        else if(drag == 'drag6')
        {
            drag = 'Alcohol';
            werkwoord = ' gedronken om ';
        }

        $.post("ajax/save.php", { 
                drag: drag,
                drop: drop,
                userid: <?php echo $_SESSION['id']; ?>,
                day: day},
                function(data) 
                {
                });
        return false;
    },
});

但是当我这样做时,被拖动的项目(或该项目的克隆)就会消失。我不知道为什么,因为页面没有刷新。新项目不会存储。

我尝试的另一个选项是将拖动项目的ID和删除项目ID放在文本框中,并在每次删除某些内容时保存。但那也行不通。

我真的希望有人可以帮助我! 提前谢谢。

enter image description here

1 个答案:

答案 0 :(得分:2)

您将在false回调处理程序的末尾返回drop

这将告诉droppable draggable无效,然后将其丢弃。如果您完全删除return,它应该可以正常工作。

我冒昧地优化你的代码,我希望你不介意;)

$('#dropzone ul li').droppable({
    drop: function(event, ui) {
        var day = $(".confirmday").val(),
            drag, werkwoord;

        switch (ui.draggable[0].id) {
            case "drag1":
                drag = 'Medicijnen';
                werkwoord = ' ingenomen om ';
            break;

            case "drag2":
                drag = 'Snack';
                werkwoord = ' gegeten om ';
            break;

            case "drag3":
                drag = 'Frisdrank';
                werkwoord = ' gedronken om ';
            break;

            case "drag4":
                drag = 'Thee';
                werkwoord = ' gedronken om ';
            break;

            case "drag5":
                drag = 'Koffie';
                werkwoord = ' gedronken om ';
            break;

            case "drag6":
                drag = 'Alcohol';
                werkwoord = ' gedronken om ';
            break;

            default:
                return false;
            break;
        }

        $.post("ajax/save.php",
            { 
                drag: ui.draggable[0].id,
                drop: this.id,
                userid: <?php echo $_SESSION['id']; ?>,
                day: day
            },
            function(data){}
        );
    },
});