157

ChosenとSelect2 は、 selectboxを拡張するための 2 つのより一般的なライブラリです。

どちらも積極的にメンテナンスされているようですが、Chosen の方が古く、jQuery と Prototype の両方をサポートしています。

Select2 は jQuery のみであり、ドキュメントには Select2 が Chosen に触発されたものであると書かれていますが、改善点 (ある場合) や書き直しのその他の理由については詳しく説明されていません。

2 つのライブラリにはほとんど同じ機能セットがあります。私が見つけた唯一の比較は、やや決定的な jsperf テスト ページです。

これらのライブラリには、他のライブラリよりも優れているものがありますか?

4

11 に答える 11

92

Select2 3.3.1 の時点で、以下はその README.md に記載されている内容です。

選択した Select2 サポートがサポートしないものは何ですか?

  • 大規模なデータセットの操作: Chosen では、データセット全体をoptionDOM にタグとして読み込む必要があるため、小規模なデータセットの操作に制限されます。Select2 は関数を使用してオンザフライで結果を検索します。これにより、結果を部分的に読み込むことができます。
  • 結果のページング: Select2 は大規模なデータセットで動作し、一度に少量の一致する結果しかロードしないため、ページングをサポートする必要があります。Select2 は、ユーザーが現在ロードされている結果セットの一番下までスクロールすると検索機能を呼び出し、結果の「無限スクロール」を可能にします。
  • option結果のカスタム マークアップ: Chosen は、タグでサポートされる唯一のマークアップであるため、テキスト結果のレンダリングのみをサポートします。Select2 は、結果を表すあらゆる種類のマークアップを生成するために使用できる拡張ポイントを提供します。
  • その場で結果を追加する機能: Select2 は、ユーザーが入力した検索用語から結果を追加する機能を提供し、タグ付けに使用できるようにします。
于 2013-03-04T12:48:16.623 に答える
40

IMHO Chosen は「維持」されていますが、「積極的に維持」されていません。Chosen に対する 341 のイシューと 51 のプル リクエスト。Select2 には 128 の課題と 25 のプル リクエストがあります。これらのパターンは基本的に

  • 表面的に魅力的な方を選んでください
  • 1 つまたは 2 つのアプリで使用する
  • カスタマイズの問題や制限にぶつかる
  • 問題やプルリクエストを通じてコミュニティと協力してみてください
  • 最終的にはうんざりし、このプロセスで学んだことを使用して独自のものを構築するだけです

どちらを選択しても、ユース ケースがまさにそのスイート スポットにある場合は、どちらでも機能します。そうでない場合は、最終的には独自に作成するか、これらを大幅にカスタマイズする必要があります。どちらの場合でも、どちらを選択するかは特に重要ではありません。ここでは、Select2 がおそらく最初の選択肢として適切であるという点で、@Andy Ray と @paul の側に立つと思います。

于 2012-11-27T01:09:09.357 に答える
23

言及する価値のあるもう 1 つの違いは、がandChosenで開発されているのに対し、単純なandです。とが不必要な複雑さの層であり、デバッグが困難になるのは私の個人的な選択肢です。SassCoffeeScriptSelect2CSSJSSassCoffeeScript

両方を試した後、私はどちらも使用しないことに決めました -Select2アイテム作成機能を取得しようとすると、要素に接続されているときにそれを行うことができないため、非常に厄介な問題であることが判明しました<select>- 私が持っているフープをよく考えていませんでした飛び越える。

新しい要素をフォームの DOM に追加するだけのselectize.jsを使用することにしまし<option>...</option>た。これは正気です。それも使用しますLESSが、私はそれをバイパスし、コンパイルされたものCSSをプロジェクトで直接調整します。

于 2013-08-07T20:16:30.740 に答える
19

selected.js と select2.js の比較

  • 両方のMITライセンス
  • 依存関係:
    • Select2: jQuery
    • 選択: tbc
  • デスクトップ ブラウザのサポート:
    • Select2: IE8+
    • 選択: IE8+
  • デバイスのサポート:
    • Select2: 不明
    • 選択済み: iPhone、iPod Touch、および Android モバイル デバイスでは無効
  • 重量 (縮小):
    • Select2: 57KB
    • 選択: 27KB
  • 使用法: Select2 はより「派手な」UI をサポートします (「テンプレート」を参照)。
  • どちらのコード リポジトリも Github で入手できます
    • Select2: 貢献: 非常に活発
    • 選択: 貢献: Select2 の約 3 分の 1 未満

select2.js の貢献 selected.js の貢献

ps。不足している点について詳しく調べたら、この回答を更新しようとします

于 2015-01-26T15:17:31.710 に答える
13

まず、Chosen と Select2 は 2 つの優れたプラグインであり、これは Chosen に関する私の個人的な経験です。彼らが言っていることはすべて、選ばれし者に関して真実です。

Pēteris Caune が指摘した問題select2 年前のものであり、まだ正式な修正はありません。API に関する優れたドキュメントはまったくありません。それは何度も指摘されてきました (watch issue 671) が、まだ何もありません。この問題を解決するのにほぼ2年かかりました。overflow:hidden表示する前にdivを非表示にすると、witdh:X%選択したものは基本的に機能しません(また、問題を探さなければ基本的に決してわからないオプションを使用する必要があります)。

主な問題は、問題 92 で DelvarWorld が述べたような修正速度だと思います。

私のプルリクエストはこの問題を修正しましたが、私の他のものと選択したものの多くと同様に、それらは無視されています。このプロジェクトには、コード ベースが小さすぎる貢献者が多すぎます。

私は最初に MIT ライセンスのために Chosen を選びましたが、すべての問題 (ドロップダウン カット、API が見つからない、オーバーフローが隠されているのを探す時間) があったので、select2 に切り替えることにしました。そしてより速い修正。

于 2013-06-21T23:32:16.670 に答える
9

Select2 では機能するが、Chosen では機能しない機能の 1 つは、またはselectを持つ要素内にあります。overflow: hiddenoverflow: auto

ここに画像の説明を入力

Chosen の対応する問題: https://github.com/harvesthq/chosen/issues/86

于 2013-06-20T13:02:17.410 に答える
6

これらの 2 つのプラグインを使用して、いくつかの相違点を見つけました。

  • select2 を使用すると、オプション内の任意の場所で検索できます。たとえば、ABCDEFG というオプションがあり、CDE と入力すると、検索結果にそのオプションが表示されますが、選択した場合は AB.. などと入力して結果を取得する必要があります。

  • 特に IE では、大規模なデータセットでは、selected の方が select2 よりも高速に見えることがわかりました。

于 2013-06-24T15:51:35.413 に答える
5

Select2 はモバイルをサポートしますが、Chosenは特にiPod、iPhone、およびモバイル Android で自身を無効にします。モバイルで「拡張」選択ボックスを使用する場合、これにより選択が容易になります。

于 2014-07-29T01:13:48.493 に答える
5

Select2 での私の経験は、デスクトップでは素晴らしいものでしたが、タッチ モバイル デバイスでは非常に多様で、常にいくつかの癖がありました。たとえば、ics と株式ブラウザのドロップダウンを使用した Xperia st15i では、キーボードがフォーカスを盗むため、常に閉じていました。再び開く唯一の方法は、メニューを何十回もタッチし、指を少しの間押したままにし、その他のブードゥー魔法を行うことです。または、ドロップダウン リストが閉じている間に入力を開始すると、何人のユーザーがこれを理解するでしょうか?

Selectize.js は Select2 よりもはるかにスムーズに見えますが、値が選択または入力されたときに何らかの理由でページが左端まで移動するなど、モバイルではそれ自体にも問題があります。また、オーバーフローをサポートしていない古い Android 2.x デバイスでは、キーボードがポップアップしないため、いくつかのトップ オプションを超えて選択することはできません。:(

まだChosenをテストする必要があり、モバイルデバイスで無効にすることはそれほど悪い考えではないかもしれません.

更新: 現在、Chosen もテストしましたが、1 つの点で優れています。デフォルトではモバイルでは動作しません (すばらしい!)。ただし、単語のフィルタリングに問題があります。たとえば、単語の途中では検索しません。また、並べ替えに  hack を使用すると、完全なオプションも無視されます。製図板に戻ります。

于 2014-12-11T13:53:38.390 に答える
1

私がChosenではなくselect2を選んだ理由

select2 が持っている重要な機能は、他のコントロールが魔法のように自動的に持っていないもので、コントロールの右側に「x」が付いた「すべてクリア」の選択です。これは私のアプリケーションのキラー機能です。他の選択タグ拡張ライブラリにこの機能がない理由がわかりません。

于 2016-05-23T12:22:01.410 に答える
0

Select2 は AJAX をサポートしています

Select 2 は、選択したものに比べてサイズが少し重くなっています。

ajax 操作の公式サポートがないため、Select2 に切り替えました。

于 2015-06-16T17:07:33.607 に答える