我有一行可以将项目拖入其中,然后对它们进行排序。一切正常。我甚至在每个项目上都有一个删除事件,因此可以从行中删除它。
我想要一个可以克隆行的选项。我这样做是通过使用下面的克隆函数:
clonedrow = $("#row1").clone(true);
clonedid = "row"+nextRowNumber; //nextRowNumber is a variable calculated by counting the rows that exist already.
clonedrow.attr("id",clonedid).insertAfter("#row1");
除了“row1”中的可拖动/可排序事件不会复制到克隆行之外,这一切都有效。难道我做错了什么?我想通过添加'true'来复制事件......?
FWIW加载页面时,我有一个自动构建第一行的函数,并将可拖动/可排序/删除事件应用于它......
答案 0 :(得分:4)
我不太了解draggable,但在使用true
克隆可拖动元素时似乎有一些奇怪的行为。也许您不希望克隆所有data
,如果其中某些应该特定于该元素。
在这个简单的示例中,当您clone(true)
并尝试拖动克隆时,会拖动原始文件。
或许最好重新申请draggable()
。
clonedrow = $("#row1").clone().draggable();
如果您需要其他设置,我会将它们存储在变量中以防止重复。
var settings = {
// some settings
}
clonedrow = $("#row1").clone().draggable(settings);
答案 1 :(得分:0)
如果clone传递true参数,jQuery复制事件和数据。为了测试是否已传递事件,请参阅元素数据http://www.jsfiddle.net/zfSrR/1/
的events属性console.log($("#row1").data('events'));
console.log($(clonedrow).data('events'));