jQueryUI可更新的可排序重新绑定

时间:2011-06-07 13:09:27

标签: jquery jquery-ui

我的标记中有一个<ul>标记为“硬编码”:

所以,比如:

<ul id='myList'></ul>

然后我有了这个:

$(document).ready(function() {
//Some code
   $("#myList").sortable();
//Some more code
});

现在,我的问题在于我通过点击按钮动态更新<ul>。有问题的列表由用户在运行时生成。因此,当页面加载了一些数据(它全部存储在数据库中)时,<li>对象都被正确列出并按预期创建为.sortable()。添加新条目后,整个列表将恢复为显示项目符号列表的列表,而不再是.sortable();。当用户输入数据时,数据将存储到数据中并通过JSON返回给客户端(即没有回发)。

所以,我的问题是,有没有办法动态重新绑定.sortable();,以便列表永远不会回退到标准<li>元素,并始终为{{1} }?

2 个答案:

答案 0 :(得分:1)

我根据您的代码创建了fiddle。有什么我想念的 - 我没有看到你描述的行为。我正在使用jQuery 1.6.0(因为jsFiddle没有1.6.1的选项)。但我正在使用jQueryUI 1.8.13(黑色领带主题,这并不是真正意义:) :)。

我无需在sortable上进行刷新 - 我的列表更新而不会恢复为基本的<UL>

让我知道我错过了什么,我可以进一步完善小提琴。

希望这有帮助。

修改: 我根据您的评论对fiddle进行了一些更改。它不是100%相同,因为jsFiddle只允许POST为JSON回应请求,但我认为它很接近。我仍然不需要进行可排序的刷新;我只是清空外部<UL>的内容,然后重建<LI>元素。

答案 1 :(得分:0)

你试过.sortable('refresh')吗? http://docs.jquery.com/UI/Sortable#method-refresh