【问题标题】:jQuery UI sortable: load order from arrayjQuery UI 可排序:从数组加载顺序
【发布时间】:2011-07-20 15:28:28
【问题描述】:

有没有一种方便的方法来加载存储的 jQuery UI 可排序列表的顺序?

我不希望在服务器端进行此操作(服务器的额外复杂性/工作),并且由于唯一将使用该列表的用户将拥有 javascript,因此不妨利用 javascript 在页面加载时对其重新排序。

想要的场景:

  • 所有数据都使用persistjs 存储为普通的javascript 数组或在页面加载时发送到客户端(作为本机数组)。
  • 该列表应该是静态 HTML(对非 js 客户端友好)(并且不应像之前问题中的其他用户所建议的那样附加到空列表)
  • 如果没有存储首选项,则不会发生任何事情。普通列表保持原样。

有什么想法吗?我认为这个问题将使很多用户受益,所以我希望有一个非常优雅、简单的解决方案(没有像删除股票列表然后将配置附加到新列表这样的混乱黑客)。最好只查看一组 ID 和(尽可能(可能会添加一些项目,可能会删除一些项目))并将它们按相同的顺序排列。

谢谢! =]

【问题讨论】:

    标签: javascript jquery jquery-ui list jquery-ui-sortable


    【解决方案1】:

    在页面按您想要的方式加载后,您必须重新排序。而且您必须以任何方式在服务器端为客户端排序构建数组。

    我认为最好以它们应该出现在服务器端的方式显示可排序项目。列表应该是你说的静态 HTML(对非 js 客户端友好),对吧?

    如果您真的坚持在客户端浏览器上执行此操作(我不同意),请阅读 - jQuery.sortable. change the order by JS

    【讨论】:

    • 但是您错过了非 js 客户端根本不会对列表进行排序的观点。为了回答这个问题,假设他们的偏好甚至永远不会存储在服务器上。所有的诉求都应该在客户端完成。其他任何东西都会变得令人无法接受的混乱/骇人听闻,难以维护、扩展甚至使用。
    • 如果非JS客户端没有启用JS,他们将如何排序/重新排序?
    • 他们永远不会对列表进行排序;他们会看到默认排序。没有理由解释这一点,因为他们从来没有对列表进行排序。他们的浏览器不会执行加载他们的订单首选项的 javascript 或让他们重新排序的 javascript,所以再一次,这不是问题。
    • 非常、非常简单的智能方式按字母顺序排列列表的示例:jsfiddle example。这是智能的,因为没有重新创建列表节点;他们只是重新订购。在排序之前与它们关联的事件和函数仍然可以正常运行,就好像什么都没发生一样。
    • LI 被移除并附加。检查分离文档。但尽管如此,这是做你想做的事的好方法。随它去吧。
    猜你喜欢
    • 1970-01-01
    • 2011-02-18
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 2019-09-30
    相关资源
    最近更新 更多