【发布时间】:2021-01-28 00:27:35
【问题描述】:
所以我正在尝试实现一个可排序的列表。但是,该列表是使用 JavaScript 从数组中生成的。这个数组来自后端c#。
这是我的可排序 jquery -
$('.sortable-list').sortable({
connectWith: '.sortable-list',
update: function (event, ui) {
var changedList = this.id;
var order = $(this).sortable('toArray');
var positions = order.join(';');
success: writeCategories(positions);
console.log("positions written");
},
});
这是我的生成列表的 JavaScript 函数...
function makecategories(array) {
// Create the list element:
var list = document.createElement('ul');
list.id = "boo";
list.className = "sortable-list ui-sortable";
for (var i = 0; i < array.length; i++) {
// Create the list item:
var item = document.createElement('li');
item.id = i + 1;
item.className = "ui-sortable-handle";
item.style = '"margin: 1px; width: 130px; padding: 2px; vertical - align: middle;"';
// Set its contents:
item.appendChild(document.createTextNode(array[i]));
// Add it to the list:
list.appendChild(item);
}
// Finally, return the constructed list:
return list;
}
这是我从后端获取数组并调用我的 JS 函数的方法
var categories = <%= this.javaSerial.Serialize(this.Menus) %>;
//alert(categories[3]);
document.getElementById('categories').appendChild(makecategories(categories));
这是我的 HTML
<div id="categories">
</div>
这是我得到的结果-
Hen
Dog
Cat
但是这个列表是不可排序的。在这里的任何帮助将不胜感激。
这是我尝试过的-
<div id="categories">
<ul class="sortable-list">
<li id="1"> Food </li>
<li id="2"> Drinks </li>
</ul>
<div>
这给了我一个结果-
Food
Drinks
Hen
Dog
Cat
其中食物和饮料列表是可排序的,而母鸡猫列表是不可排序的。
请随时向我询问更多可能需要的信息。
【问题讨论】:
-
在 sortable 中,您引用
success,不确定您要使用它做什么。 -
哦,有一次,我得到了排序列表,我从后端调用函数 writeCategories() 并传递排序后的数组位置。该函数将排序后的数组写入json文件
-
你能指出你到底面临什么问题,因为我在小提琴中试过你的代码,它似乎工作。 fiddle
-
@sandeepjoshi 当我从 c# 中提取数组时,它是不可排序的!但是 Twisty 帮我解决了这个问题。所以,谢谢
标签: javascript html jquery jquery-ui jquery-ui-sortable