Search code examples
jquerydraggablejquery-ui-sortable

Jquery Sortable Update Event can called only one time?


I'm trying to make category changes with Jquery & Php. I have no problem with it. My problem is, when the update event is called, it returning 2 results. 1 result for Dragged Parent, One result for Dropped Parent. I wanna call only dropped parent's id. Here is my script:

$("#gallery ul").sortable({
    connectWith: '.dropBox',
    opacity: 0.35,
    scroll: true, 
    scrollSensitivity: 100,
    //handle: '.move',
    helper: 'clone',
    containment:'#gallery',
    accept:'#gallery > .photo',
    revert: true,
    update: function(event, ui){
        params = 'c=' + $(this).attr('id') + '&id=' + ui.item.attr('id');

        $.ajax({
            type: 'POST',
            url: 'processData.php',
            data: params,
            error:function(){
                alert("Error!");
            },
            success:function(data){
                $("#serverResponse").html(data);
            }
        });
    }
}).disableSelection();

Can you help me guys?


Solution

  • Use update, stop and receive events, for example

    $(function() {
        position_updated = false; //flag bit
    
        $(".sortable").sortable({
            connectWith: ".sortable",
    
            update: function(event, ui) {
                position_updated = !ui.sender; //if no sender, set sortWithin flag to true
            },
    
            stop: function(event, ui) {
                if (position_updated) {
    
                    //code
    
                    position_updated = false;
                }
            },
    
            receive: function(event, ui) {
                // code
            }
    
        }).disableSelection();
    });