我在让 JQuery-UI 交互在我的页面上工作时遇到了一点问题。我以前没有使用过 JQuery-UI,所以我开始尝试可排序的交互,希望以后可以拖放和排序。但是,我一直在用头撞墙,甚至无法使可排序的工作正常进行。
我正在尝试排序的内容正在使用 ajax 动态加载。以下是内容外观的表示:
<ul id="category_list">
<li class="category" data-category-id="17">Education</li>
<li class="category" data-category-id="20">General Information</li>
<li class="category" data-category-id="14">Music / Movies / Television</li>
<li class="category" data-category-id="18">Navigation</li>
<li class="category" data-category-id="19">Retailers</li>
<li class="category" data-category-id="16">Social Media</li>
<li class="category" data-category-id="15">Web Results</li>
</ul>
这个 JQuery 函数加载数据:
// load all the engines in a category
$('#container').on("click", ".buttonclass", function() {
$.get("/categories", {
id : $(this).attr('data-id')
}, function(data) {
var pane = $("#categories").data('jsp');
pane.getContentPane().html(data);
pane.reinitialise();
});
});
(与窗格相关的东西是因为它可以由 JScrollPane 滚动)。我尝试在上面的这个函数中添加代码以使列表元素可排序,但没有任何效果。我尝试过的一些事情是:
$('.category').sortable();
...
$('.category'.each(function(){$(this).sortable()};
...
$("#category_list").sortable();
...
$('.category').sortable('refresh');
...
$('.category'.each(function(){$(this).sortable('refresh')};
...
$("#category_list").sortable('refresh');
我尝试将代码添加到回调函数($.get)内部和之后的点击处理程序,但没有运气。
在页面中(在 JscrollPane 内)硬编码的静态数据没有问题排序。只是动态内容造成了麻烦。
任何帮助将不胜感激。