2012-02-14 5 views
0

Imにはthis SO questionという疑似問題があります。私は内側にdroppablesとoverflow: scrollとのdivがあります。 draggableがdivの下に落ちると、droppableが引き続きトリガーします。その質問からの解決策は、それが起こらないようにします。しかし、私は最初のdivの下にdroppablesと別のdivがあります。その解決策は、私が2番目のドロップ可能でも落ちるのを防ぎます。無効にした後に削除可能を有効にします

私はそれを少し修正しなければなりませんでした。そして、ドロップイベントのチェックをするのではなく、私はそれを落とし可能なイベントのオーバーイベントに入れました。ドロップ可能が隠れている場合、私はそれを無効にします。これにより、第2ドロップが動作するようになりますが、将来の使用のためにドロップブルを再び有効にするのに問題があります。 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);  
     }); 
    }   
}); 
関連する問題