【发布时间】:2012-04-18 14:39:32
【问题描述】:
我正在创建一个简单的表单构建器来使用 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();
}
});
});
【问题讨论】:
-
你能设置一个jsfiddle吗jsfiddle.net
-
您的编辑 3 删除了您设置 itemToAdd 的字符串!
-
jsFiddle 这里jsfiddle.net/jayhouse072/7HUt2
-
Solutions here 可能会解决您的问题。
-
@d_inevitable 已修复,不确定那里发生了什么。