2

ドラッグ可能な要素がドラッグされたときに消えるdiv要素があります。これは、outイベントを使用して正常に動作します。私が得ている問題は、ドロップ可能に2つのドラッグ可能な要素がある場合です。ドロップ可能な要素は、ドラッグしても消えます。どのようにしてドロップ可能なものにもう一つのドラッグ可能な要素があるかを確認することで、フェード効果をキャンセルすることができます。最後のドラッグ可能な要素が取り除かれたときにだけ、落書き要素が消えるようにしたい。drappableに既に別のドラッグ可能な要素(jQuery UI)が含まれていないか確認してください。

$(".droppable-element").droppable({ 
    tolerance: 'touch', 
    out:function(event,ui){ 

     /*Need to first check if there is another draggable element in the droppable before fading out.*/ 
      $(this).fadeOut('slow', function(){ 
       // Animation complete. 

      });     
} 
}); 

答えて

2

drappableの子要素(子孫)はドラッグ可能ですか?そして、彼らが引きずられたとき、彼らはそれから取り除かれていますか?その場合、あなたはこのような何かを行うことができます:

if ($(this).find(".draggable-element").length == 0) 
    $(this).fadeOut('slow', function(){ 

更新を:私が正しく理解していれば、あなたがドロップ可能に要素をドラッグ(?多分それを落とした)、その後、別のものをドラッグし、それを削除しました。その場合、ドラッグ可能なもののうちどれが(または少なくともどれだけ)ドラグ可能であったかを追跡できますが、出ていませんでした。

$(".droppable-element").droppable({ 
    tolerance: 'touch', 
    over:function(event,ui) { 
     var howMany = $(this).data("howMany") || 0; 
     $(this).data("howMany", howMany+1); 
    }, 
    out:function(event,ui){ 
     var howMany = $(this).data("howMany") || 1; 
     $(this).data("howMany", howMany-1); 
     if (howMany == 1) 
      $(this).fadeOut('slow', function(){ 
       // Animation complete. 
      }); 
    } 
}); 
+0

これ以外の場合は別ですが、私はちょうどセレクタを使用できます – kmb64

関連する問題