Chosen und Select2 sind die beiden beliebtesten Bibliotheken zum Erweitern von Selectboxen.
Beide scheinen aktiv gepflegt zu sein, Chosen ist älter und unterstützt sowohl jQuery als auch Prototype.
Select2 ist nur jQuery. In der Dokumentation heißt es, dass Select2 von Chosen inspiriert ist, jedoch keine Verbesserungen (falls vorhanden) oder andere Gründe für das Umschreiben enthält.
Zwei Bibliotheken haben fast den gleichen Funktionsumfang. Der einzige Vergleich, den ich gefunden habe, ist eine etwas nicht schlüssige jsperf-Testseite.
Hat eine dieser Bibliotheken Vorteile gegenüber der anderen?
is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU General Public License version 2
Antworten:
Ab Select2 3.3.1 sind die folgenden Informationen in der Datei README.md dokumentiert
quelle
IMHO Chosen wird "gepflegt", aber nicht "aktiv gepflegt". 341 Probleme und 51 Pull-Anfragen für Auserwählte. Select2 hat 128 Probleme und 25 Pull-Anfragen. Ich denke, das Muster für diese ist im Grunde
Egal für welchen Sie sich entscheiden, wenn sich Ihr Anwendungsfall genau im Sweet Spot befindet, funktioniert einer von beiden. Wenn nicht, müssen Sie eventuell Ihre eigenen schreiben oder diese stark anpassen. In beiden Fällen ist die Wahl, welche spezifisch ist, nicht so wichtig. Ich denke, ich werde mich hier auf die Seite von @Andy Ray und @paul stellen, dass Select2 wahrscheinlich die bessere erste Wahl ist.
quelle
Ein weiterer erwähnenswerter Unterschied ist, dass er
Chosen
inSass
undCoffeeScript
währendSelect2
einfachCSS
und entwickelt istJS
. Es ist meine persönliche Wahl , dieSass
undCoffeeScript
nicht benötigten Schichten von Komplexität sind , die schwierig machen debuggen.Nachdem ich beide ausprobiert habe, habe ich mich für beides entschieden. Der Versuch, die
Select2
Funktionalität zum Erstellen von<select>
Elementen zu erhalten , stellt sich als sehr haarige Angelegenheit heraus, da man es einfach nicht tun kann, wenn man an Elementen hängt. Es fühlte sich einfach nicht gut durchdacht an, welche Reifen ich hätte durchspringen.Ich habe mich für selectize.js entschieden, das nur das neue
<option>...</option>
Element zum DOM des Formulars hinzufügt - und das ist vernünftig. Es wird auch verwendetLESS
- aber ich würde das umgehen und nur dieCSS
direkt in Ihrem Projekt kompilierten anpassen.quelle
selectize.js
verbraucht weniger . Ist das weniger eine technologische Sackgasse als esSass
ist?selected.js vs select2.js
ps. Ich werde versuchen, diese Antwort zu aktualisieren, wenn ich mehr über die fehlenden Punkte erfahre
quelle
Lassen Sie mich zunächst sagen, dass Chosen und Select2 zwei großartige Plugins sind und dies meine persönliche Erfahrung mit Chosen ist. Alles, was sie sagen, ist wahr in Bezug auf Auserwählte.
Das Problem, auf das Pēteris Caune mit dem hingewiesen hat,
select
ist 2 Jahre alt und es gibt noch keine offizielle Lösung. Es gibt einfach keine gute Dokumentation für die API. Es wurde schon oft darauf hingewiesen (siehe Ausgabe 671), aber es gibt immer noch nichts. Sie haben fast 2 Jahre gebraucht , um dieses Problem zu lösen , bei dem die Auswahl im Grunde nicht funktioniert, wenn Sie das divoverflow:hidden
vor dem Anzeigen versteckt haben (und Sie müssen einewitdh:X%
Option verwenden, die Sie im Grunde nie erfahren würden, wenn Sie nicht nach dem Problem suchen).Ich würde sagen, dass das Hauptproblem die Fixgeschwindigkeit ist, wie DelvarWorld in Ausgabe 92 sagte:
Ich habe zuerst Chosen für die MIT-Lizenz ausgewählt, aber ich hatte alle diese Probleme (Dropdown-Kürzung, nicht gefundene API, Suche nach Stunden für den versteckten Überlauf), also habe ich mich für select2 entschieden, weil es eine bessere Dokumentation hat, kein Dropdown-Cut-Fehler und schnellere Korrekturen.
quelle
Eine Funktion, die in Select2 funktioniert, in Chosen jedoch nicht, ist das
select
innere Element mitoverflow: hidden
oderoverflow: auto
.Entsprechendes Problem für Ausgewählte: https://github.com/harvesthq/chosen/issues/86
quelle
.chosen-drop { z-index: 999999 !important;}
, um das mit ausgewähltenEinige Unterschiede bei der Arbeit mit diesen beiden Plugins:
Mit select2 können Sie an einer beliebigen Stelle in der Option suchen. Wenn Sie beispielsweise eine Option namens ABCDEFG haben und CDE eingeben, wird diese Option in den Suchergebnissen angezeigt. Wenn Sie diese Option ausgewählt haben, müssen Sie AB .. usw. eingeben, um die Ergebnisse zu erhalten.
Ich habe festgestellt, dass bei größeren Datensätzen die Auswahl schneller zu sein scheint als select2, insbesondere im IE.
quelle
Kingdom
auf der Beispielseite tippen, wird dies zurückgegeben.United Kingdom
Dies scheint eine sehr logische Methode zu sein$("#element").chosen({ search_contains: true });
. Außerdem können Sie dies auch angeben .Select2 unterstützt Mobile, während Chosen sich speziell auf iPods, iPhones und mobilen Android- Geräten deaktiviert . Wenn Sie "erweiterte" Auswahlfelder auf Mobilgeräten verwenden möchten, erleichtert dies Ihre Auswahl.
quelle
Meine Erfahrung mit Select2 war auf dem Desktop großartig, aber auf Touch-Mobilgeräten sehr unterschiedlich, wobei einige Macken immer vorhanden waren. Zum Beispiel schloss sich auf dem xperia st15i mit ics und dem Aktienbrowser das Dropdown-Menü immer selbst, weil die Tastatur den Fokus stahl. Die einzige Möglichkeit, es wieder zu öffnen, besteht darin, das Menü Dutzende Male zu berühren, eine Sekunde lang den Finger zu halten und andere Voodoo-Magie zu zeigen. Oder um mit der Eingabe zu beginnen, während die Dropdown-Liste geschlossen ist, und wie viele Benutzer werden dies herausfinden?
Selectize.js scheint viel flüssiger zu sein als Select2, hat aber auch Probleme auf Mobilgeräten, z. B. wenn der Wert ausgewählt oder eingegeben wird, wird die Seite aus irgendeinem Grund ganz nach links verschoben. Auf älteren Android 2.x-Geräten, die keinen Überlauf unterstützen, ist es unmöglich, über die wenigen Top-Optionen hinaus auszuwählen, da die Tastatur nicht angezeigt wird. :((
Ich muss Chosen noch testen und es ist vielleicht keine so schlechte Idee, für mobile Geräte deaktiviert zu werden, aber am Ende funktioniert gutes altes Dropdown immer und überall.
Update: Jetzt habe ich auch Chosen getestet und es ist in einem Bereich besser: Es funktioniert standardmäßig nicht auf Mobilgeräten (großartig!), Aber es gibt Probleme beim Filtern von Wörtern. Beispielsweise wird nicht in der Mitte der Wörter gesucht, und wenn Sie & nbsp hack für Aligments verwenden, werden auch vollständige Optionen ignoriert. Zurück zum Zeichenbrett.
quelle
search_contains: true
Ihre Optionen hinzu. Siehe crophq.github.io/chosen/options.htmlWarum ich select2 anstelle von Chosen gewählt habe
Das Hauptmerkmal von select2, das kein anderes Steuerelement automatisch hat, ist die Option "Alle löschen" mit dem 'x' auf der rechten Seite des Steuerelements. Dies ist eine Killer-Funktion für meine Anwendung. Ich weiß nicht, warum anderen Select-Tag-Erweiterungsbibliotheken diese Funktion fehlt.
quelle
Select2 unterstützt AJAX Chosen Doesn't
Select 2 ist etwas schwerer als ausgewählt.
Ich bin zu Select2 gewechselt, weil keine offizielle Unterstützung für Ajax-Operationen vorhanden ist.
quelle