从可分离容器中分离拖放目标
问题描述:
我试图设置使用Knockout和jQuery进行拖放克隆,但是我无法弄清楚这一点。
我有the knockout-sortable binding that Niemeyer wrote,但我无法找到一种方法将其挂上我想要的。从可分离容器中分离拖放目标
我希望connectClass
能够“抓住”下降,并将它们传递给子元素Sortable,但显然不是。这里是我从尼迈耶分手的小提琴,很简单地展示了我想要做的事情。
http://jsfiddle.net/Kal_Torak/g74xN/3/
我可排序的绑定元素并不总是会在他们的项目,所以列表本身是不可见的,所以我需要能够在父容器上任意地方扔,并让他们按照您的预期添加。
答
一个选项是添加一些droppable
绑定,与sortable
和draggable
绑定配合良好。有几种方法可以做到这一点,但这里有一种方法可以将处理程序传递给droppable,并调用传递新项目的处理程序作为第一个参数。
ko.bindingHandlers.droppable = {
init: function(element, valueAccessor) {
var dropHandler = valueAccessor() || {};
$(element).droppable({
drop: function(event, ui) {
var item = ko.utils.domData.get(ui.draggable[0], "ko_dragItem");
if (item) {
item = item.clone ? item.clone() : item;
dropHandler.call(this, item, event, ui);
}
}
});
}
};
然后,你会绑定它想:
<div id="main" data-bind="droppable: addTask">
随着addTask
推到你的observbaleArray。
完美,谢谢! – 2013-04-04 14:58:41