2016-08-22 6 views
-1

私はドラッグアンドドロップシステムを持っています。私はドロップ可能な複数のdivとドラッグ可能な複数のdivを持っています。 その後、私はクローンシステムをドロップ可能領域に実装しました。私のドロップ可能なdivはすべてクローン化でき、それも問題なく動作しています。クローンされた要素でDroppableが動作しない

問題は、要素をクローンしたドラッグ可能な領域にドラッグしようとするときです。 ドラッグ可能なdivはクローンされたドロップ可能領域をドロップ可能領域として検出しません。元のdropp領域にドラッグすることしかできません。

ドラッグ可能なdivに、削除可能な新しい要素があることを知らせるために何かを更新する必要がありますか?

--- EDIT ---

同じ問題を持つすべての人に、あなたはクローンの前にドロップ可能を破壊する必要があります。 は、だからあなたのクローン機能では、ちょうどこの

$(".drop").droppable("destroy"); 

してからクローンを入れ、その後、あなたは再びドロップ可能な関数を呼び出します。

+0

あなたが使用しているプラ​​グインがわからない場合は、はいです。新しい削除可能領域を作成するたびにプラグインを更新する必要があります。プラグインには、それを行うために使用できる「更新」または「更新」メソッドが必要です。 –

+0

Jquery UIを使用しています。私はJSでリフレッシュしようとしましたが、ページがリフレッシュされるときにクローンされた要素がなくなってしまっています(どこにも保存していないので正常です)。 –

答えて

0

セットアップでjQuery UIを使用していますか?ドラッグされたdivのクラス名を変更しようとする必要があります。次のように試してみてください:

$("#draggable").addClass("newClassName"); 

これを済ませたら、そのアイテムを受け入れるようにあなたの落書きを設定してください。 jQuery UIのようなサウンドは、あなたのアイテムは既にドロップされていると思う。あなたがドロップイベントに更新機能を呼び出すことにより、新しく作成されたdroppablesを再初期化することができため、あなたが探しているものを達成するために

$("#droppable").droppable({ 
     accept: ".newClassName", 
+0

はい、私はJquery UIを使用しています。しかし、もし私がそれを行うと、クラスが変更されたので、div間の接続を再度作成する必要があります。 –

+0

アップデートを参照してください。それは役に立ちますか? – AndrewLeonardi

+0

残念ながら、今ではオリジナルでも動作していません。 –

0

。私はあなたが提供した例を使ってこれに来ました。やってみて。

$(document).ready(function() { 
      $(".duplicatedrop").click(
      function() { 
      $(".drop").clone(true, true).appendTo(".drop"); 
      } 
     ); 

    $(function() { 
     $(".drag").draggable({ 
      revert: true, 
      cursor: 'move' 
     }); 
    }); 


    updateDroppables(); 

    function updateDroppables(){ 
     $(".drop").droppable({ 
      accept: ".drag", 
      drop: function(event, ui) { 
       $(this).find("p").html("Dropped!"); 
       var clone = $(this).clone(); 
       clone.appendTo('body'); 
       updateDroppables(); 
      } 
     }); 
    }; 
}); 
+0

私はそれをどこに置くのかは分かりません。 "受け入れる"の後に? –

+0

はじめに、単純な質問だけではなく、これまでに行ったことを最初に示していたはずです。しかし、限り私はあなたが新しい要素を作成するたびにそれを使用する必要があることを伝えることができます。プラグインを最初に初期化するときは、既に存在する要素だけが影響を受けるため、新しい要素にその動作を持たせたい場合は、作成時にそれらを有効にする必要があります。 –

+0

私は今、コンピュータにいますが、私は数分で表示しようとします。しかし、btw、それは動作しませんでした –

関連する問題