Saya mungkin idiot, tetapi bagaimana Anda menjaga banyak bagian di akordeon jQuery UI terbuka? Semua demo hanya dibuka satu pada satu waktu ... Saya mencari sistem jenis menu yang dapat diciutkan.
javascript
jquery
html
jquery-ui
Pejalan
sumber
sumber
Jawaban:
Ini awalnya dibahas dalam dokumentasi jQuery UI untuk Accordion :
"Saya mungkin idiot" - Anda bukan idiot jika Anda tidak membaca dokumentasinya, tetapi jika Anda mengalami masalah, biasanya mempercepat menemukan solusi.
sumber
Cukup mudah:
sumber
create: function(event) { $(event.target).accordion( "activate", false ); }
untuk mulai runtuh.create: function(event) { $(event.target).accordion( "activate", false ); }
Anda mengatur opsi:{active: false}
Memposting ini di utas yang serupa, tetapi menurut Anda mungkin relevan di sini juga.
Mencapai ini dengan satu instance jQuery-UI Accordion
Seperti yang dicatat orang lain,
Accordion
widget tidak memiliki opsi API untuk melakukan ini secara langsung. Namun, jika karena alasan tertentu Anda harus menggunakan widget (misalnya Anda mempertahankan sistem yang ada), hal ini dapat dilakukan dengan menggunakan opsibeforeActivate
event handler untuk menumbangkan dan meniru perilaku default widget.Sebagai contoh:
Lihat demo jsFiddle
sumber
ui-accordion-header-active
Atau bahkan lebih sederhana?
sumber
Saya telah melakukan plugin jQuery yang memiliki tampilan yang sama dengan jQuery UI Accordion dan dapat membuat semua tab \ bagian terbuka
Anda dapat menemukannya di sini
http://anasnakawa.wordpress.com/2011/01/25/jquery-ui-multi-open-accordion/
bekerja dengan markup yang sama
Kode Javascript
UPDATE: plugin telah diperbarui untuk mendukung opsi tab aktif default
PEMBARUAN: Plugin ini sekarang tidak digunakan lagi.
sumber
Sebenarnya sedang mencari solusi di internet untuk ini untuk sementara waktu. Dan jawaban yang diterima memberikan jawaban "menurut buku" yang baik. Tetapi saya tidak mau menerimanya jadi saya terus mencari dan menemukan ini:
http://jsbin.com/eqape/1601/edit - Contoh Langsung
Contoh ini menarik gaya yang tepat dan menambahkan fungsionalitas yang diminta pada saat yang sama, lengkap dengan ruang untuk menulis menambahkan fungsionalitas Anda sendiri pada setiap klik tajuk. Juga memungkinkan beberapa div berada di antara "h3".
Kode HTML:
sumber
Saya menemukan solusi yang rumit. Mari kita panggil fungsi yang sama dua kali tetapi dengan id berbeda.
Kode JQuery
Kode HTML
sumber
class
seperti yang disarankan oleh orang lain, ini berarti Anda tidak mengulangi diri Anda sendiri ( KERING )Sederhana, buat beberapa div akordian yang masing-masing mewakili satu tag jangkar seperti:
Itu menambahkan beberapa markup. Tetapi bekerja seperti ...
sumber
Sederhana: aktifkan akordeon ke kelas, lalu buat div dengan ini, seperti contoh kelipatan akordeon.
Seperti ini:
JS
HTML
https://jsfiddle.net/sparhawk_odin/pm91whz3/
sumber
Panggil saja setiap bagian akordeon sebagai akordeonnya sendiri. active: n akan menjadi 0 untuk yang pertama (sehingga akan ditampilkan) dan 1, 2, 3, 4, dll untuk sisanya. Karena masing-masing adalah akordeonnya sendiri, semuanya hanya akan memiliki 1 bagian, dan sisanya akan diciutkan untuk memulai.
sumber
Lebih sederhana lagi, beri label di setiap atribut kelas tag li dan miliki jquery untuk mengulang melalui setiap li untuk menginisialisasi akordeon.
sumber
Tanpa akordeon jQuery-UI, seseorang cukup melakukan ini:
Dan js
https://jsfiddle.net/gayan_dasanayake/6ogxL7nm/
sumber
buka jquery-ui - *. js
Temukan
$.widget( "ui.accordion", {
Temukan
_eventHandler: function( event ) {
di dalamperubahan
untuk
sebelum
active.removeClass( "ui-accordion-header-active ui-state-active" );
Menambahkan
if (typeof(active) !== 'undefined') {
dan tutup}
Nikmati
sumber
Anda cukup menggunakan fungsi jquery each ();
sumber