Javascript попадает в бесконечный цикл при удалении «перетаскиваемого» - PullRequest
1 голос
/ 21 апреля 2011

У меня возникла конкретная проблема: когда я перетаскиваю перетаскиваемый объект на буксируемый объект, а затем удаляю этот перетаскиваемый объект (перетаскиваемые элементы - это «файлы и папки», а отбрасываемый элемент - «Корзина») внутри обратного вызова события «drop» ", JavaScript падает в бесконечный цикл. Мой точный код:

$("#trash").droppable({
    over  : function () {$("#trash").addClass("over")},
    out   : function () {$("#trash").removeClass("over")},
    drop  : function (e, ui) { 
        $("#trash").removeClass("over");
        var id=$($(ui.draggable).parent()).attr("id"), fl=false;
        $($(ui.draggable).parent()).hide();
        $(".ui-draggable-dragging").remove();       
        if (id[1]=='l') {
            fl=true;
            id=flid(id);        
        }else{
            id=fid(id);
        }
        $.post("ajax/recycle_file.php", {fid : id, folder : fl}, function (data) {
            var elid=$($(ui.draggable).parent()).attr("id");
            $("#"+elid).draggable("destroy");
            $("#"+elid).remove(); //Here is where the endless loop starts
        });
    }
});

Сообщение, которое я получаю с консоли javascript в Google Chrome:

Uncaught TypeError: Cannot read property 'options' of undefined
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...