4

ドラッグ可能なものをドロップした後に破棄しようとすると、jQueryUIでエラーが発生します。jQuery1.9.1とjQueryUI1.10.0を使用しています。

脚本

$(".drag").draggable({
    revert: "invalid",
    helper: "clone"
});

$(".drop").droppable({
    accept: ".drag",
    drop: function(event,ui){
      ui.helper.remove();
      $(this).append(ui.draggable);
      $(ui.draggable).draggable("destroy");
    }
});

HTML

<div class="drag">Draggable</div>
<div class="drop">Droppable</div>

例: http: //jsfiddle.net/feDME/

エラーを受信しました

TypeError:$(...)。data(...)は未定義です

私は過去数時間を運がなくてこれに費やしました。解決策が含まれていない同様の投稿を1つ見つけました。誰かがここで私を助けることができますか?ありがとう!

4

2 に答える 2

7

ドラッグが停止したときにカーソルを設定しようとする jquery-ui ドラッグ可能コードに競合状態があるようです。stop が呼び出されたときに「ドラッグ可能な」データがまだドラッグ可能な div にアタッチされていないため、次の行は失敗しています。

var o = $(this).data('draggable').options;

ちょっとしたハックですが、この setTimeout で修正できます。

$(".drop").droppable({
    accept: ".drag",
    drop: function(event,ui){
      ui.helper.remove();
      $(this).append(ui.draggable);
      setTimeout(function() {
          $(ui.draggable).draggable("destroy");      
      }, 0);      
    }
});
于 2013-03-19T19:24:38.670 に答える