Переключить сбрасываемый

когда я нажимал перетаскиваемый 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
Спасибо, Ноллберт, я попытался снова включить его, когда функция запустилась, но это не сработало. Ваше решение решает проблему. Еще раз спасибо. - person gitGitGelme; 23.05.2013