我有以下代码,它允许您在页面上拖放元素,并在成功拖放时运行一个名为 saveRatings 的方法,传递元素的 id。
$('.draggable').draggable({
revert: true
});
$('.droppable').droppable({
drop: function( event, ui ) {
draggedID = ui.draggable.attr("id");
droppedID = $(this).attr("id");
Global.showLoader('Saving...');
quiz1.saveRatings(draggedID, droppedID);
}
});
计划是,一旦成功放置,它将删除拖动的项目并从放置的元素中删除可放置类,以防止其他元素也被放置在那里:
saveRatings: function ( choiceId, ratingId ) {
// Hide the dragged choice
$('div#' + choiceId).hide();
// Remove droppable behaviour
$('div#' + ratingId).removeClass('ui-droppable');
$('div#' + ratingId).removeClass('droppable');
$('div#' + ratingId).addClass('done');
}
删除部分与删除类一样工作正常,但元素仍然允许将其他元素放在其上......即使我已经从元素中删除了 droppable 和 ui-droppable 类......
任何想法为什么这不起作用?由于完整的代码库相当大(但不会直接影响这一点),我无法展示小提琴,但上面的示例应该足以解释这个问题,希望有一个解决方案。