Dipilih dan Select2 adalah dua perpustakaan lebih populer untuk memperluas kotak pilih.
Keduanya tampaknya dipelihara secara aktif, Dipilih lebih tua dan mendukung jQuery dan Prototipe.
Select2 hanya jQuery, dokumentasinya mengatakan Select2 terinspirasi oleh Chosen, tetapi tidak merinci perbaikan yang dibuat (jika ada) atau alasan lain untuk penulisan ulang.
Dua perpustakaan memiliki set fitur yang hampir sama, satu-satunya perbandingan yang saya temukan adalah halaman uji jsperf yang agak tidak meyakinkan.
Apakah ada perpustakaan yang memiliki kelebihan dibandingkan yang lain?
is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU General Public License version 2
Jawaban:
Pada Select2 3.3.1, di bawah ini adalah apa yang didokumentasikan dalam README.md-nya
sumber
IMHO Terpilih "dipelihara" tetapi tidak "dipelihara secara aktif". 341 masalah dan 51 menarik permintaan untuk Dipilih. Select2 memiliki 128 masalah dan 25 permintaan tarik. Saya pikir pola untuk ini pada dasarnya
Apa pun yang Anda pilih, jika kasing Anda tepat berada di sweet spot mereka, salah satunya akan berfungsi. Jika tidak, pada akhirnya Anda harus menulis sendiri atau menyesuaikannya. Dalam kedua kasus itu, pilihan mana yang secara khusus tidak begitu penting. Saya kira saya akan memihak @Andy Ray dan @paul di sini bahwa Select2 mungkin merupakan pilihan awal yang lebih baik.
sumber
Perbedaan lain yang layak disebutkan adalah yang
Chosen
dikembangkan diSass
danCoffeeScript
sedangkanSelect2
jelasCSS
danJS
. Ini adalah pilihan pribadi sayaSass
danCoffeeScript
merupakan lapisan kompleksitas yang tidak diperlukan yang membuat debug sulit.Setelah mencoba keduanya, saya memutuskan untuk tidak menggunakan keduanya - mencoba
Select2
membuat fungsionalitas item ternyata menjadi urusan yang sangat berbulu karena Anda tidak dapat melakukannya ketika dilampirkan ke<select>
elemen - hanya saja tidak merasa dipikirkan dengan baik lingkaran yang akan saya miliki untuk melompat.Saya telah memutuskan untuk menggunakan selectize.js yang hanya menambahkan
<option>...</option>
elemen baru ke DOM form - dan itu waras. Itu juga menggunakanLESS
- tapi saya akan memotong itu dan hanya menyesuaikan yang dikompilasiCSS
langsung di proyek Anda.sumber
selectize.js
menggunakan lebih sedikit . Apakah itu kurang dari jalan buntu teknologi daripadaSass
?selected.js vs select2.js
ps. Saya akan mencoba memperbarui jawaban ini ketika saya tahu lebih banyak tentang poin yang hilang
sumber
Pertama, saya beri tahu Anda bahwa Chosen dan Select2 adalah dua plugin yang bagus dan ini adalah pengalaman pribadi saya tentang Chosen. Semua yang mereka katakan benar tentang Terpilih.
The masalah ditunjukkan oleh Pēteris Caune dengan
select
berusia 2 tahun dan masih tidak ada perbaikan resmi. Tidak ada dokumentasi yang baik untuk API. Telah ditunjukkan (masalah menonton 671) banyak waktu tetapi masih tidak ada. Mereka membutuhkan hampir 2 tahun untuk menyelesaikan masalah ini di mana yang dipilih pada dasarnya tidak akan berfungsi jika Anda menyembunyikan divoverflow:hidden
sebelum menunjukkannya (dan Anda harus menggunakanwitdh:X%
opsi yang pada dasarnya tidak akan pernah Anda ketahui jika Anda tidak mencari masalah).Saya akan mengatakan bahwa masalah utama adalah kecepatan perbaikan seperti yang dikatakan DelvarWorld dalam edisi 92:
Saya pertama kali memilih Dipilih untuk lisensi MIT-nya tetapi saya memiliki semua masalah tesis ini (dropdown cut, tidak menemukan API, mencari jam untuk overflow yang disembunyikan), jadi saya memutuskan untuk beralih ke select2 karena memiliki dokumentasi yang lebih baik, tidak ada bug dropdown cut dan perbaikan lebih cepat.
sumber
Salah satu fitur yang berfungsi di Select2 tetapi tidak berfungsi di Dipilih, adalah
select
elemen di dalam yang memilikioverflow: hidden
atauoverflow: auto
.Masalah terkait untuk Dipilih: https://github.com/harvesthq/chosen/issues/86
sumber
.chosen-drop { z-index: 999999 !important;}
untuk memperbaikinya dengan yang dipilihBeberapa perbedaan yang saya temukan bekerja dengan dua plugin ini:
Dengan select2 Anda dapat mencari di lokasi mana saja di dalam opsi. Misalnya, jika Anda memiliki opsi yang disebut ABCDEFG dan Anda mengetikkan CDE, Anda akan mendapatkan opsi itu dalam hasil pencarian tetapi dengan memilih Anda harus mengetik AB .. dan seterusnya untuk mendapatkan hasil.
Saya telah menemukan bahwa dengan kumpulan data yang lebih besar, dipilih tampaknya lebih cepat daripada select2, terutama di IE.
sumber
Kingdom
pada halaman contoh mereka akan kembaliUnited Kingdom
yang tampaknya cara yang sangat logis untuk melakukannya ditambah Anda dapat menentukan juga$("#element").chosen({ search_contains: true });
.Select2 mendukung mobile, sedangkan Chosen secara khusus menonaktifkan dirinya di iPod, iPhone dan Android mobile. Jika Anda ingin menggunakan kotak pilih "extended" di ponsel, ini membuat pilihan Anda mudah.
sumber
Pengalaman saya dengan Select2 sangat bagus di desktop, tetapi pada perangkat seluler sentuh sangat bervariasi, dengan beberapa kebiasaan selalu ada. Sebagai contoh, pada xperia st15i dengan ics dan dropdown browser stock selalu menutup sendiri karena fokus mencuri keyboard. Satu-satunya cara untuk membuka kembali adalah dengan menyentuh menu puluhan kali, tahan jari untuk sihir voodoo kedua dan lainnya. Atau untuk mulai mengetik ketika daftar dropdown ditutup, dan berapa banyak pengguna yang akan mengetahuinya?
Selectize.js tampaknya jauh lebih halus daripada Select2, tetapi ia juga memiliki masalah sendiri pada ponsel misalnya ketika nilai dipilih atau dimasukkan itu memindahkan halaman ke kiri karena beberapa alasan. Juga, pada perangkat Android 2.x yang lebih lama yang tidak mendukung overflow, tidak mungkin untuk memilih melewati beberapa opsi teratas, karena keyboard tidak muncul. :(
Masih harus menguji Terpilih dan mungkin bukan ide yang buruk untuk dinonaktifkan untuk perangkat seluler, tetapi pada akhirnya dropdown lama yang baik selalu berfungsi dan di mana saja.
Pembaruan: sekarang saya juga telah menguji Pilihan yang dipilih, dan lebih baik di satu bidang: tidak berfungsi pada ponsel secara default (hebat!), Tetapi memiliki masalah penyaringan kata. Misalnya, jangan mencari di tengah kata, dan jika Anda menggunakan & nbsp meretas aligment, itu juga akan mengabaikan opsi lengkap. Kembali ke papan gambar.
sumber
search_contains: true
ke opsi Anda. Lihat harvesthq.github.io/chosen/options.htmlMengapa saya memilih select2 daripada Dipilih
Fitur utama select2 telah, bahwa tidak ada kontrol lain secara otomatis, adalah "Hapus semua" pilihan dengan 'x' di sebelah kanan kontrol. Ini adalah fitur pembunuh untuk aplikasi saya. Saya tidak tahu mengapa pustaka tag tambahan lainnya kekurangan fitur ini.
sumber
Select2 mendukung AJAX Dipilih Tidak
Pilih 2 sedikit lebih berat dalam ukuran dibandingkan dengan yang dipilih.
Saya beralih ke Select2 karena tidak ada dukungan resmi untuk operasi ajax.
sumber