1

使用 jquery UI 拖动 div 并将其放入 UI droppable div 时,我想在 div 被放入该区域时触发 jquery 动画。当动画被触发时,它会在所有具有 class = "drag-element" 的 div 上调用,但我只希望对特定的拖放元素进行动画处理。我尝试包括 removeClass(".drag-element") 和 addClass(".animate-element") 并告诉 animate() 对此采取行动,但它仍在将动画应用于所有 .drag-element div。我该如何解决这个问题?

查询:

$(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。取而代之的是 drop 函数有一个 ui 参数,它为您提供有关使用拖动元素的信息ui.draggable

于 2013-04-18T03:19:34.900 回答