Превключване на пускане

когато щракнах върху плъзгащ се div, някои div на сцената станаха пускащи се, а когато плъзнах елемент до местоназначението му, пускащите се div се дезактивираха. Работи добре, но когато искам да пусна друг елемент отново, не мога да активирам същия div. Как мога да го активирам? http://jsfiddle.net/6v8Lc/3/

function drop (childSocket, inputCache) {
//when "on mousedown" for pawn, pawnSocket calculated if its suitable droppable or not
$(".pawnSocket:nth-child("+childSocket+")").droppable({
    hoverClass: "over",
    drop: function(ev, ui) {
        var thisPosLeft = $(this).position().left;
        var thisPosTop = $(this).position().top;
        var draggedPawn = $(ui.draggable);
        draggedPawn.css({
            left: thisPosLeft,
            top: thisPosTop
        });
        var thisIndex = $(this).index();
        var suruklenenIndex = piyonYuvaKonum.indexOf(inputCache);
        piyonYuvaKonum[suruklenenIndex] = null;
        piyonYuvaKonum[thisIndex] = inputCache;

        // when i run disable option, it becomes disabled but i can't enable again


        $(".pawnSocket").droppable("disable");
        //$(this).droppable("option", "disabled", true);
    }
});
}

person gitGitGelme    schedule 23.05.2013    source източник
comment
Можете ли да предоставите цигулка?   -  person Irvin Dominin    schedule 23.05.2013
comment
да, jsfiddle.net/6v8Lc/2   -  person gitGitGelme    schedule 23.05.2013


Отговори (1)


Вместо да декларирате повторно даден елемент, който може да бъде пуснат при всяко плъзгане, декларирайте ги, че могат да бъдат пуснати, и ги задайте, когато искате да бъдат деактивирани или активирани.

$(".drag").draggable({ revert: "invalid"})
    .on("mousedown", function () {
        $(".drop").droppable('enable');

});
$(".drop").droppable({
        hoverClass: "over",
        drop: function (ev, ui) {
            var dizPozL = $(this).position().left + 5;
            var dizPozT = $(this).position().top + 5;
            var suruklenenPiyon = $(ui.draggable);
            suruklenenPiyon.css({
                left: dizPozL,
                top: dizPozT
            });
            suruklenenPiyon.hide("slow");
            $(".drop").droppable("disable");
        },
        disabled:true
    });
person user694844    schedule 23.05.2013
comment
Благодаря Knollbert, опитах да го активирам отново, когато функцията стартира, но не се получи. Вашето решение решава проблема. Благодаря ви отново. - person gitGitGelme; 23.05.2013