Многократное перетаскивание в JQuery: событие после перетаскивания - PullRequest
3 голосов
/ 24 января 2010

Я на самом деле пытаюсь создать страницу .php, где я собираюсь иметь 3 перетаскиваемых элемента, которые нужно перетащить в 3 элемента перетаскивания - каждый из которых перетаскивается в элемент перетаскивания, и они уникальны, поэтому каждый из них должен принимать определенный перетаскиваемый.

Дело в том, что мне нужно контролировать, чтобы все элементы были перетащены в нужное место, и в этом случае я должен перенаправить пользователя, например, на success.php, в противном случае, если некоторые элементы были перетащены в неправильно сбрасывается, пользователь должен перейти, например, на fail.php.

Можно ли, например, сохранить определенное значение в $ _SESSION в PHP, чтобы знать, что все перетаскиваемые объекты были отброшены в нужном месте?

Это код для перетаскивания:

$(function() {
    $("#draggableLeiden").draggable();
    $("#draggableTheHague").draggable();
    $("#draggableRotterdam").draggable();

    $("#droppableLeiden").droppable({
        accept: '.imgLeiden',
        drop: function(event, ui) 
        {
            $(this).addClass('ui-state-highlight');

        }
    });
    $("#droppableTheHague").droppable({
        accept: '.imgTheHague',
        drop: function(event, ui) 
        {
            $(this).addClass('ui-state-highlight');

        }
    });
    $("#droppableRotterdam").droppable({
        accept: '.imgRotterdam',
        drop: function() 
        {
            $(this).addClass('ui-state-highlight');
            //var activeClass = $(this).droppable('option', 'activeClass','ui-state-highlight');
        }
    });
});

Я пытаюсь сделать это, например, получить активный класс элементов droppable, чтобы увидеть, соответствует ли он 'ui-state-highlight', но на самом деле этот тег будет выполняться каждый раз при перезагрузке страницы, поэтому, если я попробую вставить любой код в
drop: function () это всегда будет выполняться.

Заранее большое спасибо!

Ответы [ 2 ]

1 голос
/ 30 января 2010

Вы случайно ищете ui.draggable, в котором содержится упавший элемент?

http://jqueryui.com/demos/droppable/

$('#target').droppable({
    drop : function(event,ui){
            if($(ui.draggable).attr('id') == "correcttarget")
            {
                    window.location = "yay.php";
            }
            else
            {
                    window.location = "awwww.php";
            }
    }
})
1 голос
/ 25 января 2010

Вместо этого используйте параметр revert . Когда перетаскиваемый элемент опускается на что-либо, кроме принятого сбрасываемого элемента, он возвращается к исходному месту. Это работает для вас?

...