jQueryUI をいじるための単純なフォーム ビルダーを作成しています。ドラッグ可能にした画像と同じように、ヘルパー「クローン」に設定されたフォーム要素のリストがあります。また、ドロップ イベントを設定して、ドロップされた画像の ID を読み取り、適切なフォーム要素を作成してドロップ可能な領域に追加するドロップ可能な領域もあります。新しい要素を追加したら、ドラッグ可能に設定します。問題は、クラス ui-draggable を持つ新しい要素にもかかわらず、一度ドラッグ可能が呼び出されたにもかかわらず、ドラッグ可能ではないことです。作成したらドラッグできるようにしたいです。
コードは次のとおりです。
var itemCount = 1;
var idToAdd;
var itemToAdd;
$(document).ready(function(){
$(".draggable").draggable({
opacity:0.5,
helper: "clone"
});
$(".form_builder").droppable(
{
activeClass: "droppable_dragged",
drop: function(e, ui){
var dropped_item = ui.draggable;
switch($(dropped_item).attr("id")){
case "text_box":
idToAdd = "textBox" + itemCount;
itemToAdd = "<input id='" + idToAdd + "' type='text' />";
break;
case "text_area":
break;
case "radio":
idToAdd = "radio" + itemCount;
itemToAdd = "<input id='" + idToAdd + "' type='radio' />";
break;
case "check":
idToAdd = "check" + itemCount;
itemToAdd = "<input id='" + idToAdd + "' type='check' />";
break;
case "dropdown":
break;
case "file":
idToAdd = "file" + itemCount;
itemToAdd = "<input id='" + idToAdd + "' type='file' />";
break;
case "button":
idToAdd = "button" + itemCount;
itemToAdd = "<input id='" + idToAdd + "' type='submit' />";
break;
}
itemCount++;
$(this).append(itemToAdd);
$("#" + idToAdd).draggable();
}
});
});