【问题标题】:jQuery sortable and AJAX question. (sortable not working when the list comes from AJAX)jQuery 可排序和 AJAX 问题。 (当列表来自 AJAX 时无法排序)
【发布时间】:2026-01-01 12:45:02
【问题描述】:

我有 2 个可排序的列表。第一个是从数据库中获取带有 AJAX 的元素(比如分页,我不希望该列表中同时包含 200 个项目)。第二个一开始是空的,我想用第一个中的元素填充它。

我对 jQuery 和 AJAX 非常陌生,所以我想提前为我所说的任何愚蠢的事情道歉。

当我使用 AJAX 获取元素时,Sortable 无法处理第一个列表。

这是我用于可排序的:

jQuery(文档).ready(函数(){ jQuery("#sortable1, #sortable2").sortable({ 光标:'十字准线', 连接:'.connectedSortable' }).disableSelection() });

这是 AJAX 部分:

jQuery('.nav').click(函数(事件) { jQuery.ajax({ 类型:“post”,url:“admin-ajax.php”, 数据:{动作:'ak_attach','lim':jQuery(event.target).attr(“name”),_ajax_nonce:''}, beforeSend: function() {jQuery("#loading").fadeIn('fast');}, 成功:功能(味精){ jQuery(".listContent").html(msg) } }); //关闭jQuery.ajax 返回假; }) })

问候, 博

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

    在将新值添加到列表后,您是否正在调用$("#sortable1, #sortable2").sortable( 'refresh' )?这将导致 jquery 看到新值并在需要时采取措施。

    http://jqueryui.com/demos/sortable/#method-refresh

    【讨论】:

    • 我唯一能想到调用它的地方是在 AJAX 完成或成功之后。还是什么都没有。
    • 你需要在成功函数中调用它,你试过了吗?