用jQuery UI排序的淘汰赛
-
30-09-2019 - |
题
我也在与Google Groups合作,在淘汰赛论坛上为此提供帮助 - 但我认为更大的受众永远不会损害这种情况。
我试图让KO使用jQuery UI的“可分配”插件来处理这种情况。我的代码在这里发布。
试图使用自定义绑定...
ko.bindingHandlers.onReceiveItem = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
$(element).bind("sortreceive", function (event, ui) {
ko.bindingHandlers.onReceiveItem.update(element, valueAccessor, allBindingsAccessor, viewModel);
});
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var value = ko.utils.unwrapObservable(valueAccessor());
var bindings = allBindingsAccessor();
}
};
目的是,当可排序列表收到项目时,它可以获取该项目并将其添加到另一个ObservableArray。
不过,这对我来说还不够。我很难像我想要的那样将活动开火。我设置它的方式,确实会发射,但它只返回一个“真/错误”值。我希望别人可能会对我做错了什么,并且知道如何解决它。
(要使用代码,您需要参考
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/themes/base/jquery-ui.css" rel="Stylesheet" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/jquery-ui.js"></script>
在顶部,然后是最新版本的淘汰赛(1.1.1)
http://cloud.github.com/downloads/stevesanderson/knockout/knockout-1.1.1.1.debug.js
解决方案
我没有意识到 史蒂夫已经回答了 在我完成之前。不过,您走在这里,与他略有不同。
可分配使它变得更加困难,这将使每种产品绑定拖放绑定会变得容易得多。可分配的问题是,您在整个列表上而不是项目绑定。
其他提示
我重新设计了样本,并配备了一个几乎完整的绑定者,它不需要ID属性,并且还可以处理重新排序。这是代码:
http://jsbin.com/knockoutsortable/20/Edit
用法:
它正在使用模板。进行绑定以找出视图模型中关联的数组是什么。
您可以使用databind =“ foreach:foreach:products,sortable:true”来在没有选项的情况下进行排序。
它正在使用ObservableArray对象。
它正在构建jQuery可分类,您可以将绑定中的相同选项对象传递,而不是在jQuery.sortable构造函数中。