我的标记中有一个<ul>
标记为“硬编码”:
所以,比如:
<ul id='myList'></ul>
然后我有了这个:
$(document).ready(function() {
//Some code
$("#myList").sortable();
//Some more code
});
现在,我的问题在于我通过点击按钮动态更新<ul>
。有问题的列表由用户在运行时生成。因此,当页面加载了一些数据(它全部存储在数据库中)时,<li>
对象都被正确列出并按预期创建为.sortable()
。添加新条目后,整个列表将恢复为显示项目符号列表的列表,而不再是.sortable();
。当用户输入数据时,数据将存储到数据中并通过JSON返回给客户端(即没有回发)。
所以,我的问题是,有没有办法动态重新绑定.sortable();
,以便列表永远不会回退到标准<li>
元素,并始终为{{1} }?
答案 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