Selected和Select2有什么区别?

SelectedSelect2 是用于扩展选择框的两个更流行的库。

两者似乎都得到了积极的维护,Selected更旧,并且支持jQuery和Prototype。

Select2只是jQuery,它的文档说Select2的灵感来自Selected,但没有详细说明任何改进(如果有的话)或其他重写原因。

两个库具有几乎相同的功能集,我发现的唯一比较是一个有点不确定的jsperf测试页面。

这些库中的任何一个与其他库相比是否有任何优势?


答案 1

从Select2 3.3.1开始,以下是其 README.md

Select2 支持所选内容不支持哪些内容?

  • 使用大型数据集:选择“选项”需要将整个数据集作为标记加载到 DOM 中,这限制了它只能使用小型数据集。Select2 使用函数动态查找结果,这允许它部分加载结果。option
  • 结果分页:由于 Select2 适用于大型数据集,并且一次只加载少量匹配结果,因此必须支持分页。当用户滚动到当前加载的结果集的底部时,Select2 将调用搜索函数,从而允许对结果进行“无限滚动”。
  • 结果的自定义标记:所选内容仅支持呈现文本结果,因为这是标记支持的唯一标记。Select2 提供了一个扩展点,可用于生成任何类型的标记来表示结果。option
  • 动态添加结果的能力:Select2 提供了从用户输入的搜索词添加结果的功能,从而允许将其用于标记。

答案 2

恕我直言,选择是“维护”的,但不是“积极维护的”。所选的 341 个问题和 51 个拉取请求。Select2 有 128 个问题和 25 个拉取请求。我认为这些模式基本上是

  • 选择表面上对你更有吸引力的一个
  • 在一两个应用中使用它
  • 遇到自定义问题或限制
  • 也许尝试通过问题和拉取请求与社区合作
  • 最终受够了,只是用你在这个过程中学到的东西建立自己的

无论您选择哪一个,如果您的用例恰好处于最佳位置,则任何一个都可以工作。如果没有,您最终将不得不编写自己的或大量自定义这些。无论哪种情况,选择哪一个都不是那么重要。我想我会站在@Andy Ray和@paul,Select2可能是更好的初始选择。