对于分层数据来说,最好的 jquery 多选选择器是什么

发布于 2024-10-26 18:16:16 字数 306 浏览 0 评论 0 原文

我今天有一个“扁平”下拉选择器,其中包含 200 多个项目。问题是该列表实际上是一个数据层次结构,所以我想看看是否有任何选择器可以显示数据层次结构,以便人们可以看到每个项目在整个列表中的位置。

现在我正在连接级别,因此它会显示类似这样的内容:

level 1 --> level 2
level 1 --> level 2
level 1 --> level 2 --> level 3

但我认为可能有一个更好的 UI 小部件,可以更轻松地从列表中进行选择,其中列表本身具有不同级别的数据。

I have a "flat" dropdown picker today with over 200 items. The issue is that the list is actually a hierarchy of data so I wanted to see if there was any picker that can show a hierarchy of data so people can see where each item fits into the overall list.

Right now I am concatenating the levels so it would show something like this:

level 1 --> level 2
level 1 --> level 2
level 1 --> level 2 --> level 3

but I thought there might be a better UI widget that would make it easier to pick from a list where the list itself has data a different levels.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尘曦 2024-11-02 18:16:16

试试这个复选框树

编辑 1

如果您使用的是最新版本,您可以根据您的具体需求轻松自定义它,例如在选择孩子时更改祖先的选择。请参阅下文:(

checkboxtree.js)

        onCheck: {
            /**
             * Available values: null, 'check', 'uncheck', 'checkIfFull'
             */
            ancestors: 'check', /* <--- CHANGE THIS */
            /**
             * Available values: null, 'check', 'uncheck'
             */
            descendants: 'check',
            /**
             * Available values: null, 'collapse', 'expand'
             */
            node: '',
            /**
             * Available values: null, 'check', 'uncheck'
             */
            others: ''
        },

编辑 2

如果您在使其正常工作时遇到问题,请检查:

  • 您的 jquery.checkboxtree.js 版本为 0.5 [版本位于文件的第 8 行]。
  • 您指的是本地副本,而不是外部版本,也不是缩小版本
  • 确保您已将 'check' 更改为 ''

更改源代码也许不是最佳实践。更改参数的官方方法使用如下代码:

    $('#tree7').checkboxTree({
        onCheck: {
            ancestors: '',
            descendants: 'check'
        },
        onUncheck: {
        ancestors: 'uncheck'
        }
    });

您会在 此页面,并且可以看到它与'checkIfFull'选项一起使用。对我来说 '' 选项也有效。

Try this Checkbox Tree

EDIT 1

You can customize it easily to your exact needs, provided you are using the latest version, e.g to change the selecting-of-ancestors when a child is selected. See below:

(Line 45 onwards of checkboxtree.js)

        onCheck: {
            /**
             * Available values: null, 'check', 'uncheck', 'checkIfFull'
             */
            ancestors: 'check', /* <--- CHANGE THIS */
            /**
             * Available values: null, 'check', 'uncheck'
             */
            descendants: 'check',
            /**
             * Available values: null, 'collapse', 'expand'
             */
            node: '',
            /**
             * Available values: null, 'check', 'uncheck'
             */
            others: ''
        },

EDIT 2

If you have problems getting this to work check:

  • That you have jquery.checkboxtree.js version 0.5 [version is at line 8 of the file].
  • That you are referring to your local copy, and not an external version, and not a minified version
  • Make sure you've changed 'check' to ''

Changing the source code isn't perhaps best practice. The official way to change the parameters uses code like this:

    $('#tree7').checkboxTree({
        onCheck: {
            ancestors: '',
            descendants: 'check'
        },
        onUncheck: {
        ancestors: 'uncheck'
        }
    });

You'll find an example almost like that on tab 7 of this page, and can see that it works with the 'checkIfFull' option. For me the '' option does work too.

绅士风度i 2024-11-02 18:16:16

听起来级联下拉列表可能比较合适。用户可以在此处从下拉列表中选择父级别,然后会看到另一个包含子项目等的下拉列表。这些通常在 Ebay 等网站上使用。

Stephen Walther 有一篇关于基础知识的旧帖子,可以帮助您入门。

请注意,并不总是需要对每个列表执行 Ajax 回调到服务器。您也许可以将完整列表加载到单独的 JavaScript 文件中的 JSON 对象中,并使用 JQuery 插件创建和加载下拉列表。快速搜索发现 这个,但我确信还有很多其他的。

It sounds like a cascading dropdown list could be suited. This is where the user selects the parent level from a dropdown and is then presented with another drop down list containing the child items and so on. These are commonly used on sites such as Ebay.

Stephen Walther has an old post on the basics that can get you started.

Note that it's not always necessary to do an Ajax call back to the server for each list. You may be able to get away with loading the complete list in a JSON object in a seperate JavaScript file and using a JQuery plugin to create and load the dropdowns. A quick search found this one but I'm sure there's plenty of others.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文