Jquery 推送后对击出物进行分类

Jquery 推送后对击出物进行分类,jquery,knockout.js,Jquery,Knockout.js,下面的代码主要起作用。问题是,如果我从右框中删除一个项目并将其添加到左框中,或者反之亦然,则列表不会按字母顺序排序 我尝试使用排序函数。例如,self.catagories.sort,但它不起作用。它总是在末尾添加项目。我需要帮助解决这个问题 var categoryModel=函数类别{ this.category=ko.observativecategory; }; var viewModel=函数{ var self=这个; self.categories=ko.observearray[

下面的代码主要起作用。问题是,如果我从右框中删除一个项目并将其添加到左框中,或者反之亦然,则列表不会按字母顺序排序

我尝试使用排序函数。例如,self.catagories.sort,但它不起作用。它总是在末尾添加项目。我需要帮助解决这个问题

var categoryModel=函数类别{ this.category=ko.observativecategory; }; var viewModel=函数{ var self=这个; self.categories=ko.observearray[new categoryModelHello,new categoryModelDHFDSHADS,new categoryModelyo,new categoryModeljai]; self.selectedCategory=ko.observableArray; $'add'。单击函数{ var x=$'select1选项:selected'; 如果x.长度>0{ x、 每个函数{ 警报$this.text; self.selectedCategory.pushnew categoryModel$this.text; $选择1选项:已选择。删除; }; } }; $“删除”。单击函数{ var x=$'select2选项:selected'; 如果x.长度>0{ x、 每个函数{ 警报$this.text; self.categories.pushnew categoryModel$this.text; $选择2选项:已选择。删除; }; } }; }; $document.readyfunction{ ko.applybindingsnewviewmodel; }; .liveExample选择[多个]{宽度:20%;高度:8em;} .liveExample h2{页边空白顶部:0.4em;} 您的物品:


你在和KO战斗,而不是使用它。也就是说,您正在从DOM中删除选项,而不是从ObservalArrays中删除它们,并且您正在使用jQuery而不是KO click绑定处理单击。如果你改变这些事情,你目前的症状很可能会消失。我建议浏览KO教程

无论如何,以下是我如何解决你的问题:

var categoryModel=函数类别{ this.category=ko.observativecategory; }; var viewModel=函数{ var self=这个; self.availableCategories=ko.observableArlay[ 新分类模型你好, 新分类模型, 新分类模型, 新分类模型 ]; 自用分类=ko.observearray[]; self.selectedAvailableCategories=ko.observableArray[]; self.selectedUsedCategories=ko.observearray[]; self.add=函数{ self.selectedAvailableCategories.ForEachFunction i{ self.availableCategories.removei; 自用类别.pushi; }; }; self.remove=函数{ self.selectedCategories.foreachFunction I{ self.usedCategories.removei; self.availableCategories.pushi; }; }; }; ko.applybindingsnewviewmodel; 前置{背景:白色;填充:10px;颜色:333;字体:11px控制台;边框:1px实心ddd;} 选择{宽度:200px;} {显示:内联块;边距:10px;光标:指针;边框:1px纯金;填充:5px 10px;文本装饰:无;} a:悬停{背景色:粉红色;}
你在和KO战斗,而不是使用它。也就是说,您正在从DOM中删除选项,而不是从ObservalArrays中删除它们,并且您正在使用jQuery而不是KO click绑定处理单击。如果你改变这些事情,你目前的症状很可能会消失。我建议浏览KO教程

无论如何,以下是我如何解决你的问题:

var categoryModel=函数类别{ this.category=ko.observativecategory; }; var viewModel=函数{ var self=这个; self.availableCategories=ko.observableArlay[ 新分类模型你好, 新分类模型, 新分类模型, 新分类模型 ]; 自用分类=ko.observearray[]; self.selectedAvailableCategories=ko.observableArray[]; self.selectedUsedCategories=ko.observearray[]; self.add=函数{ self.selectedAvailableCategories.ForEachFunction i{ self.availableCategories.removei; 自用类别.pushi; }; }; self.remove=函数{ self.selectedCategories.foreachFunction I{ self.usedCategories.removei; self.availableCategories.pushi; }; }; }; ko.applybindingsnewviewmodel; 前置{背景:白色;填充:10px;颜色:333;字体:11px控制台;边框:1px实心ddd;} 选择{宽度:200px;} {显示:内联块;边距:10px;光标:指针;边框:1px纯金;填充:5px 10px;文本装饰:无;} a:悬停{背景色:粉红色;}