Chosen y Select2 son las dos bibliotecas más populares para extender selectboxes.
Ambos parecen mantenerse activamente, Chosen es más antiguo y es compatible con jQuery y Prototype.
Select2 es solo jQuery, su documentación dice que Select2 está inspirado en Chosen, pero no detalla las mejoras realizadas (si las hay) u otras razones para la reescritura.
Dos bibliotecas tienen prácticamente el mismo conjunto de características, la única comparación que he encontrado es una página de prueba jsperf algo no concluyente.
¿Alguna de estas bibliotecas tiene alguna ventaja sobre la otra?
is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU General Public License version 2
Respuestas:
A partir de Select2 3.3.1, a continuación se detallan los documentos en su archivo README.md
fuente
En mi humilde opinión, Elegido es "mantenido" pero no "mantenido activamente". 341 problemas y 51 solicitudes de extracción para Elegido. Select2 tiene 128 problemas y 25 solicitudes de extracción. Creo que el patrón para estos es básicamente
Cualquiera que elija, si su caso de uso está exactamente en su punto óptimo, cualquiera funcionará. Si no, eventualmente tendrá que escribir el suyo o personalizarlo en gran medida. En cualquier caso, la elección de cuál específicamente no es tan importante. Creo que me pondré del lado de @Andy Ray y @paul aquí que Select2 es probablemente la mejor opción inicial.
fuente
Otra diferencia que vale la pena mencionar es que
Chosen
se desarrolla enSass
yCoffeeScript
mientras queSelect2
es simpleCSS
yJS
. Es mi opción personal esoSass
yCoffeeScript
son capas innecesarias de complejidad que dificultan la depuración.Después de probar ambos, he decidido no usar ninguno: intentar
Select2
crear la funcionalidad del elemento resulta ser muy complicado, ya que simplemente no puedes hacerlo cuando estás unido a los<select>
elementos; simplemente no me sentí bien pensado en los aros que tendría para saltarMe decidí a usar selectize.js que simplemente agrega el nuevo
<option>...</option>
elemento al DOM del formulario, y eso es correcto. También usaLESS
, pero lo omitiría y simplemente adaptaría el compiladoCSS
directamente en su proyecto.fuente
selectize.js
usa menos . ¿Es eso un punto muerto tecnológico menor de lo queSass
es?chosen.js vs select2.js
PD. Intentaré actualizar esta respuesta cuando descubra más sobre los puntos faltantes
fuente
Primero, déjame decirte que Chosen y Select2 son dos excelentes complementos y esta es mi experiencia personal sobre Chosen. Todo lo que dicen es cierto con respecto a Elegido.
El problema señalado por Pēteris Caune con el
select
tiene 2 años y todavía no hay una solución oficial. Simplemente no hay buena documentación para la API. Se ha señalado (ver número 671) muchas veces, pero todavía no hay nada. Les llevó casi 2 años resolver este problema donde el elegido básicamente no funcionaría si ocultaba el divoverflow:hidden
antes de mostrarlo (y tiene que usar unawitdh:X%
opción que básicamente nunca sabría si no busca el problema).Yo diría que el problema principal es la velocidad de reparación como dijo DelvarWorld en el número 92:
Primero elegí Chosen para su licencia MIT, pero tuve todos estos problemas (corte desplegable, no encontrar la API, buscando horas para el desbordamiento oculto), así que decidí cambiar a select2 porque tiene una mejor documentación, no hay error de corte desplegable y correcciones más rápidas.
fuente
Una característica que funciona en Select2 pero no funciona en Chosen es el
select
elemento interno que tieneoverflow: hidden
ooverflow: auto
.Problema correspondiente para Elegido: https://github.com/harvesthq/chosen/issues/86
fuente
.chosen-drop { z-index: 999999 !important;}
arreglar eso con los elegidosAlgunas diferencias que he encontrado trabajando con estos dos complementos:
Con select2 puede buscar en cualquier lugar de la opción. Por ejemplo, si tiene una opción llamada ABCDEFG y escribe CDE, obtendrá esa opción en los resultados de búsqueda, pero con la opción elegida debe escribir AB ... y así sucesivamente para obtener los resultados.
Descubrí que con conjuntos de datos más grandes, los elegidos parecen ser más rápidos que select2, especialmente en IE.
fuente
Kingdom
en su página de ejemplo devolverá, loUnited Kingdom
que parece una forma muy lógica de hacerlo, además de que también puede especificar$("#element").chosen({ search_contains: true });
.Select2 es compatible con dispositivos móviles, mientras que Chosen se desactiva específicamente en iPods, iPhones y dispositivos móviles Android. Si desea usar cuadros de selección "extendidos" en dispositivos móviles, esto hace que su elección sea fácil.
fuente
Mi experiencia con Select2 fue excelente en computadoras de escritorio, pero en dispositivos móviles táctiles fue muy variada, con algunas peculiaridades siempre presentes. Por ejemplo, en xperia st15i con ics y el menú desplegable del navegador siempre se cerraba debido al enfoque de robo de teclado. La única forma de volver a abrirlo es tocar el menú docenas de veces, mantener el dedo por un segundo y otra magia vudú. ¿O para comenzar a escribir mientras la lista desplegable está cerrada y cuántos usuarios resolverán esto?
Selectize.js parece ser mucho más suave que Select2, pero también tiene problemas por sí solo en el móvil, por ejemplo, cuando se selecciona o ingresa el valor, mueve la página completamente a la izquierda por alguna razón. Además, en dispositivos Android 2.x más antiguos que no admiten desbordamiento, es imposible seleccionar más allá de las pocas opciones principales, ya que el teclado no aparece. :(
Todavía tengo que probar Chosen y, después de todo, puede que no sea una mala idea estar deshabilitado para dispositivos móviles, pero al final el buen menú desplegable funciona siempre y en todas partes.
Actualización: ahora también he probado Chosen, y es mejor en un área: no funciona en dispositivos móviles de forma predeterminada (¡genial!), Pero tiene problemas de filtrado de palabras. Por ejemplo, no busca en el medio de las palabras, y si usa & nbsp hackear alineaciones, también ignorará las opciones completas. Volver a la mesa de dibujo.
fuente
search_contains: true
a sus opciones. Ver harvesthq.github.io/chosen/options.htmlPor qué elegí select2 sobre Elegido
La característica clave que tiene select2, que ningún otro control tiene automáticamente, es "Borrar todo" con la 'x' en la mano derecha del control. Esta es una característica excelente para mi aplicación. No sé por qué otras bibliotecas de mejora de etiquetas selectas carecen de esta característica.
fuente
Select2 es compatible con AJAX Chosen.
Seleccione 2 es un poco más pesado en comparación con el elegido.
Cambié a Select2 porque no hay soporte oficial para las operaciones de ajax.
fuente