2012-02-14 2 views
0

Im имеет проблему simulair как this SO question. У меня есть div с overflow: scroll с droppables внутри. Если перетаскиваемый элемент падает ниже div, droppable все еще запускается. Решение этого вопроса не позволяет этому случиться. Тем не менее, у меня есть еще один div с droppables ниже моего первого div. Это решение не позволяет мне также отказаться от моего второго droppable.Включить droppable после его отключения

Так что мне пришлось немного изменить его, и вместо того, чтобы помещать событие check on drop, я положил его на событие over на droppable. Если droppable скрыт, я отключу его. Это делает второй droppable работать, но у меня возникли проблемы с повторным включением droppable для будущего использования. Ive пытался использовать событие droppable, но я думаю, что он также отключается, когда я отключу droppable, так как он не запускается. Как включить функцию droppable после ее отключения? Или есть лучший способ сделать это?

$('.droppable').droppable({    
     over: function(event, ui) { 
      var myOverflowObj = $(this).closest(".module, #process-window"); 

      if (myOverflowObj.length) { 

       var cTop = myOverflowObj.position().top + parseInt(myOverflowObj.css("margin-top")); 
       var cBtm = myOverflowObj.position().top + parseInt(myOverflowObj.css("margin-top")) + myOverflowObj.height(); 
       var dTop = $(this).position().top + parseInt($(this).css("margin-top")); 
       var dBtm = $(this).position().top + parseInt($(this).css("margin-top")) + $(this).height(); 

       if ((dBtm > cTop && dTop < cBtm) == false) { 
        $(this).droppable("option", "disabled", true); 
       } 
      } 
     }, 
     out: function(event, ui) { 
      $(this).droppable("option", "disabled", false);   
     } 
}); 

ответ

0

мне удается сделать работу вокруг, с помощью стоп-события перетаскиваемого объекта для повторного включения этих droppables, которые были отключены.

$('.draggable').draggable({  
    stop: function() { 
     $.each($('.droppable.ui-state-disabled'), function(index, value) { 
      $(this).droppable("option", "disabled", false);  
     }); 
    }   
}); 
Смежные вопросы