1

jquery UI を使用して div をドラッグし、それを UI のドロップ可能な div にドロップすると、領域にドロップされる div で jquery アニメーションをトリガーしたいと考えています。アニメーションがトリガーされると、class = "drag-element" のすべての div で呼び出されますが、特定のドラッグ アンド ドロップ要素のみをアニメーション化する必要があります。removeClass(".drag-element") と addClass(".animate-element") を含めて、animate() にそれを実行するように指示しようとしましたが、アニメーションをすべての .drag-element div に適用しています。これを修正するにはどうすればよいですか?

JQuery:

$(function() {
$( ".drag-element" ).draggable({ containment: ".container" }).removeClass(".drag-vid");
$( ".drop-field" ).droppable({
  drop: function( event, ui ) {
    $(".drag-element").animate({"left": "+=50px"}, "slow");
    $( this )
      .css("background-color", "silver");
  }
});
});

http://jsfiddle.net/NBHMT/

4

1 に答える 1

2

使用する:

ui.draggable.animate({"left": "+=50px"}, "slow");

それ以外の:

$(".drag-element").animate({"left": "+=50px"}, "slow");

http://jsfiddle.net/kAG6q/

コードで何が起こったかは、$(".drag-element").animate(....すべてのドラッグ要素の div を選択するときに呼び出すことです。代わりに、ドロップ関数には、ドラッグされた要素に関する情報を提供する ui 引数があります。ui.draggable

于 2013-04-18T03:19:34.900 に答える