当使用jquery UI拖动div并将其放入UI droppable 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");
}
});
});
答案 0 :(得分:2)
使用:
ui.draggable.animate({"left": "+=50px"}, "slow");
而不是:
$(".drag-element").animate({"left": "+=50px"}, "slow");
您的代码发生了什么,当您致电$(".drag-element").animate(....
时,它会选择所有拖动元素div。相反,drop函数有一个ui参数,它使用ui.draggable