この機能を動作させるのに問題があります。
状況は次のとおりです。
- ユーザーが項目を div にドラッグします
- ドロップ時に、アイテム ID を持つコントローラー アクションに AJAX Post が送信されます。
- 成功したら、アイテムがドロップされた div を、データベースから取得した html マークアップに置き換えます。.replaceWith(data) 注: このマークアップは、項目がドロップされた ID と同じ ID を持つ div であり、いくつかの追加要素が含まれています。
- これにより、更新された div が読み込まれます。
これはすべて完全に機能しますが、問題は、別のアイテムをdivにドラッグできないことです。AJAX Postの後にロードされる新しいdiv(同じIDを持つ)と関係があると確信しています。
これが私のjQueryコードです
$(function () {
$('.draggable').draggable({ revert: true });
$('#layoutHeader').droppable({
drop: function (event, ui) {
$.ajax({
type: "POST",
url: '/SiteSetup/GetMarkup/' + $(ui.draggable).attr("id"),
success: function (data) {
$('.draggable').draggable('destroy');
$('#layoutHeader').replaceWith(data);
$('.draggable').draggable({ revert: true });
}
});
}
});
});