Saya tahu pertanyaan khusus ini telah ditanyakan sebelumnya , tetapi saya tidak mendapatkan hasil apa pun menggunakan bind()
acara di jQuery UI Tabs
plugin.
Saya hanya memerlukan index
tab yang baru dipilih untuk melakukan tindakan saat tab diklik. bind()
memungkinkan saya untuk terhubung ke acara pemilihan, tetapi metode saya yang biasa untuk mendapatkan tab yang saat ini dipilih tidak berfungsi. Ini mengembalikan indeks tab yang dipilih sebelumnya, bukan yang baru:
var selectedTab = $("#TabList").tabs().data("selected.tabs");
Berikut adalah kode yang saya coba gunakan untuk mendapatkan tab yang saat ini dipilih:
$("#TabList").bind("tabsselect", function(event, ui) {
});
Ketika saya menggunakan kode ini, objek ui kembaliundefined
. Dari dokumentasi, ini seharusnya menjadi objek yang saya gunakan untuk menghubungkan ke indeks yang baru dipilih menggunakan ui.tab. Saya telah mencoba ini pada tabs()
panggilan awal dan juga sendiri. Apakah saya melakukan sesuatu yang salah di sini?
sumber
Jika Anda perlu mendapatkan indeks tab dari luar konteks acara tab, gunakan ini:
Pembaruan: Dari versi 1.9 'dipilih' diubah menjadi 'aktif'
sumber
¡¡¡Perbarui! Harap diperhatikan: Dalam versi terbaru jQueryUI (1.9+),
ui-tabs-selected
telah diganti denganui-tabs-active
. !!!Saya tahu utas ini sudah tua, tetapisesuatu yang tidak saya lihat disebutkan adalah cara mendapatkan "tab yang dipilih" (Saat ini panel yang dijatuhkan) dari tempat lain selain "peristiwa tab". Saya memiliki cara yang sederhana ...Dan untuk mudahnya mendapatkan index tersebut, tentunya ada cara yang tertera di situs ...
Namun, Anda dapat menggunakan metode pertama saya untuk mendapatkan indeks dan apa pun yang Anda inginkan tentang panel itu dengan cukup mudah ...
PS. Jika Anda menggunakan variabel iframe lalu .find ('. Ui-tabs-panel: not (.ui-tabs-hide)'), Anda juga akan mudah melakukan ini untuk tab yang dipilih dalam bingkai. Ingat, jQuery sudah melakukan semua kerja keras, tidak perlu menciptakan kembali roda!
Pertanyaan diajukan kepada saya, "Bagaimana jika ada lebih dari satu area tab pada tampilan?" Sekali lagi, pikirkan sederhana, gunakan pengaturan saya yang sama tetapi gunakan ID untuk mengidentifikasi tab mana yang ingin Anda dapatkan.
Misalnya, jika Anda memiliki:
Dan Anda ingin panel saat ini dari set tab kedua:
Dan jika Anda menginginkan tab AKTUAL dan bukan panel (sangat mudah, itulah sebabnya saya tidak menyebutkannya sebelumnya tetapi saya kira saya akan melakukannya sekarang, hanya untuk menyeluruh)
Sekali lagi, ingat, jQuery melakukan semua kerja keras, jangan berpikir terlalu keras.
sumber
Jika Anda menggunakan JQuery UI versi 1.9.0 atau lebih tinggi, Anda dapat mengakses ui.newTab.index () di dalam fungsi Anda dan mendapatkan apa yang Anda butuhkan.
Untuk versi sebelumnya, gunakan ui.index .
sumber
sumber
Kapan Anda mencoba mengakses objek ui? UI tidak akan ditentukan jika Anda mencoba mengaksesnya di luar acara bind. Juga, jika garis ini
dijalankan di acara seperti ini:
selectedTab akan sama dengan tab saat ini pada saat itu (tab "sebelumnya".) Ini karena peristiwa "tabselect" dipanggil sebelum tab yang diklik menjadi tab saat ini. Jika Anda masih ingin melakukannya dengan cara ini, menggunakan "tabsshow" akan menghasilkan selectedTab yang sama dengan tab yang diklik.
Namun, itu tampaknya terlalu rumit jika yang Anda inginkan hanyalah indeksnya. ui.index dari dalam acara atau $ ("# TabList"). tabs (). data ("selected.tabs") di luar acara harus semua yang Anda butuhkan.
sumber
ini berubah dengan versi 1.9
sesuatu seperti
seharusnya digunakan. Ini berfungsi dengan baik untuk saya ;-)
sumber
Jika ada orang yang mencoba mengakses tab dari dalam iframe, Anda mungkin memperhatikan itu tidak mungkin. The
div
tab tidak pernah mendapat ditandai sebagai yang dipilih, seperti tersembunyi atau tidak tersembunyi. Tautan itu sendiri adalah satu-satunya bagian yang ditandai sebagai dipilih.Berikut ini akan memberi Anda
href
nilai tautan yang harus sama dengan id untuk penampung tab Anda:Ini juga harus bekerja di tempat:
$tabs.tabs('option', 'selected');
Ini lebih baik dalam arti bahwa alih-alih hanya mendapatkan indeks tab, ini memberi Anda id tab yang sebenarnya.
sumber
cara termudah untuk melakukannya adalah
dan untuk indeks
sumber
Dalam kasus jika Anda menemukan Indeks tab Aktif dan kemudian arahkan ke Tab Aktif
Pertama, dapatkan indeks Aktif
Kemudian menggunakan kelas css, dapatkan panel konten tab
sekarang dibungkus dalam objek jQuery untuk digunakan lebih lanjut
di sini saya ingin menambahkan dua info kelas
.ui-tabs-nav
untuk Navigasi yang terkait dengan dan.ui-tabs-panel
terkait dengan panel konten tab. dalam demo tautan ini di situs web jquery ui Anda akan melihat kelas ini digunakan - http://jqueryui.com/tabs/#manipulationsumber
maka Anda akan memiliki indeks tab dari 0
sederhana
sumber
Coba yang berikut ini:
sumber
Saya menemukan kode di bawah ini melakukan triknya. Menetapkan variabel indeks tab yang baru dipilih
sumber
Anda dapat memposting jawaban di bawah ini di posting Anda berikutnya
sumber
Cara lain untuk mendapatkan indeks tab yang dipilih adalah:
sumber
Dalam variabel url Anda akan mendapatkan HREF / URL tab saat ini
sumber
Anda dapat menemukannya melalui:
sumber
ambil variabel tersembunyi seperti
'<input type="hidden" id="sel_tab" name="sel_tab" value="" />'
dan pada setiap acara klik tab, tulis kode seperti ...Anda bisa mendapatkan nilai 'sel_tab' pada halaman yang diposting. :), sederhana !!!
sumber
Jika Anda ingin memastikan
ui.newTab.index()
tersedia di semua situasi (tab lokal dan jarak jauh), panggil dalam fungsi pengaktifan seperti yang tertulis dalam dokumentasi :http://jsfiddle.net/7v7n0v3j/
sumber
sumber