我有一个带有jquery-ui标签的页面,每个标签包含一个表,我把标签设置为可删除的,表设置为可排序的。
我希望能够从活动选项卡内的表中拖动一行,放在不同的选项卡上,并将该行附加到该选项卡中包含的表中。
以下是我的JS:
$("#tabs").tabs();
$("tbody").sortable({
items: "> tr:not(:first)",
appendTo: "parent",
helper: "clone"
}).disableSelection();
$("#tabs ul li a").droppable({
hoverClass: "drophover",
tolerance: "pointer",
drop: function(e, ui) {
var tabdiv = $(this).attr("href");
$(tabdiv + " table tr:last").after(ui.draggable);
ui.draggable.remove();
}
});
字符串
正如您在这个JSFiddle中看到的,行是可拖动的,但是将它们拖到另一个选项卡上并不会将其追加到其中的表中。
问题似乎是我试图使用ui.draggable jquery元素在tab表的最后一行之后追加:
$(tabdiv + " table tr:last").after(ui.draggable);
型
相反,如果我自己用<tr>
标记构建行,并使用ui.draggable的html,如下所示:
$(tabdiv + " table tr:last").after("<tr>" + ui.draggable.html() + "</tr>");
型
那么它就像预期的那样工作,如这个分叉的JSFiddle所示。
这样做的问题是,我丢失了附加到原始行的任何类或数据信息。
有没有人能告诉我如何追加被拖动的行元素?(顺便说一句,我是jquery的新手,所以如果这是一些基本的东西,我很抱歉。)
1条答案
按热度按时间pgky5nke1#
可以使用
clone()
方法追加当前元素的克隆,包括数据和事件处理程序,如下所示: