Katakanlah saya membuat elemen HTML seperti ini,
<div id="my-div" class="hidden">Hello, TB3</div>
<div id="my-div" class="hide">Hello, TB4</div>
<div id="my-div" class="d-none">Hello, TB4</div>
Bagaimana saya bisa menampilkan dan menyembunyikan elemen HTML itu dari jQuery / Javascript.
JavaScript:
$(function(){
$("#my-div").show();
});
Hasil: (dengan semua ini).
Saya ingin elemen-elemen di atas disembunyikan.
Apa cara paling sederhana untuk menyembunyikan elemen menggunakan Bootstrap dan menunjukkannya menggunakan jQuery?
javascript
jquery
html
css
twitter-bootstrap
psylosss
sumber
sumber
Jawaban:
Jawaban yang benar
Bootstrap 4.x
Bootstrap 4.x menggunakan
.d-none
kelas baru . Alih-alih menggunakan salah satu.hidden
, atau.hide
jika Anda menggunakan Bootstrap 4.x gunakan.d-none
.$("#myId").removeClass('d-none');
$("#myId").addClass('d-none');
$("#myId").toggleClass('d-none');
(terima kasih atas komentar dari Fangming)
Bootstrap 3.x
Pertama, jangan gunakan
.hide
! Gunakan.hidden
. Seperti yang orang lain katakan,.hide
sudah usang,Kedua, gunakan .toggleClass () , .addClass () dan .removeClass () jQuery
$("#myId").removeClass('hidden');
$("#myId").addClass('hidden');
$("#myId").toggleClass('hidden');
Jangan gunakan kelas css
.show
, ini memiliki kasus penggunaan yang sangat kecil. Definisishow
,hidden
daninvisible
ada dalam dokumen .sumber
fadeIn()
). Oleh karena itu gunakan kelascollapse
sebagai gantihidden
. Dan tentu saja tidak ada kebutuhan untuk menggunakanremoveClass
,addClass
, dll.hidden-xs-up
. v4-alpha.getbootstrap.com/layout/responsive-utilities/... Ada jugahidden
atribut HTML5. v4-alpha.getbootstrap.com/content/reboot/….hide()
bukan.hide
kelas bootstrap . Metode jQuery berfungsi dengan baik, tapi itu bukan cara bootstrap. Pustaka Bootstrap bergantung pada masuknya kelas .hidden pada elemen untuk menentukan itu tidak ada. jQuery tidak menambahkan itu - kecuali jika Anda meretasnya seperti di sini: stackoverflow.com/a/27439371/124486 , dalam hal ini Anda dapat memecahkan hal-hal spesifik jQuery lainnya.Secara sederhana:
Atau jika Anda ingin agar kelas tetap ada di sana:
sumber
Gunakan bootstrap .collapse alih-alih .hidden
Kemudian di JQuery Anda dapat menggunakan .show () atau .hide () untuk memanipulasinya
sumber
Solusi ini sudah usang. Gunakan solusi terpilih teratas.
The
hide
kelas ini berguna untuk menjaga konten tersembunyi di halaman beban.Solusi saya untuk ini adalah selama inisialisasi, beralih ke jquery's hide:
Maka
show()
danhide()
harus berfungsi seperti biasa.sumber
Cara lain untuk mengatasi gangguan ini adalah dengan membuat kelas CSS Anda sendiri yang tidak mengatur! Penting di akhir aturan, seperti ini:
dan digunakan seperti ini:
dan sekarang jQuery menyembunyikan karya
sumber
.hidden { display: none !important; visibility: hidden !important; }
Metode @ dustin-graham diuraikan adalah bagaimana saya melakukannya juga. Ingat juga bahwa bootstrap 3 sekarang menggunakan "tersembunyi" alih-alih "sembunyikan" sesuai dokumentasinya di getbootstrap . Jadi saya akan melakukan sesuatu seperti ini:
Maka setiap kali menggunakan jQuery
show()
danhide()
metode, tidak akan ada konflik.sumber
hidden
kelas dan kemudian mencoba melakukannyashow()
di jQuery, dan tidak ada yang terjadi. Solusi Anda memperbaikinya dengan mudah, dan saya tidak memikirkannya.Mulailah elemen dengan seperti:
Dan kemudian, gunakan acara yang ingin Anda tunjukkan, seperti:
Cara termudah untuk pergi, saya percaya.
sumber
HTML:
Javascript:
sumber
Saya suka menggunakan toggleClass:
sumber
switch
sepenuhnya tidak diperlukan.// Anda bahkan tidak perlu mengatur
#my-div
.hide
juga!important
, cukup tempel / ulangi sakelar di fungsi acara.sumber
Baru-baru ini mengalami ini ketika meningkatkan dari 2,3 ke 3,1; animasi jQuery kami ( slideDown ) rusak karena kami menyembunyikan elemen pada templat halaman. Kami menempuh rute untuk menciptakan versi kelas Bootstrap yang diberi nama spasi yang sekarang menjalankan aturan penting yang jelek !
sumber
Jawaban Razz baik jika Anda ingin menulis ulang apa yang telah Anda lakukan.
Berada dalam masalah yang sama dan menyelesaikannya dengan yang berikut:
Buang ketika Bootstrap dilengkapi dengan perbaikan untuk masalah ini.
sumber
.removeClass()
atau.addClass()
?.removeClass()
sudah bekerja di set? Tidak bisakah Anda menelepon$(this).removeClass('show')
Di bootstrap 4 Anda bisa menggunakan
d-none
kelas untuk menyembunyikan elemen sepenuhnya. https://getbootstrap.com/docs/4.0/utilities/display/sumber
Pembaruan : Mulai sekarang, saya menggunakan
.collapse
dan$('.collapse').show()
.Untuk Bootstrap 4 Alpha 6
Untuk Bootstrap 4 Anda harus menggunakan
.hidden-xs-up
.https://v4-alpha.getbootstrap.com/layout/responsive-utilities/#available-classes
Ada juga
hidden
atribut HTML5.https://v4-alpha.getbootstrap.com/content/reboot/#html5-hidden-attribute
Ada juga
.invisible
yang tidak mempengaruhi tata letak.https://v4-alpha.getbootstrap.com/utilities/invisible-content/
sumber
sembunyikan dan sembunyikan sama-sama ditinggalkan dan kemudian dihapus, tidak ada lagi di versi baru. Anda dapat menggunakan kelas dll d-tidak ada / d-sm-tidak ada / tidak terlihat tergantung pada kebutuhan Anda. Kemungkinan alasan mereka dihapus adalah karena tersembunyi / sembunyikan agak membingungkan dalam konteks CSS. Dalam CSS, untuk menyembunyikan (tersembunyi) digunakan untuk visibilitas, bukan untuk tampilan. visibilitas dan tampilan adalah hal yang berbeda.
Jika Anda membutuhkan kelas visibilitas: tersembunyi, maka Anda perlu kelas tak terlihat dari utilitas visibilitas.
Periksa utilitas visibilitas dan tampilan di bawah ini:
https://getbootstrap.com/docs/4.1/utilities/visibility/
https://getbootstrap.com/docs/4.1/utilities/display/
sumber
Gunakan cuplikan berikut untuk Bootstrap 4, yang meluas jQuery:
Sertakan file setelah jQuery dimasukkan.
Gunakan itu menggunakan sintaks
$ (). hideShow ('hide');
$ (). hideShow ('show');
semoga kalian bermanfaat. :-)
sumber
Bootstrap, JQuery, namespaces ... Apa yang salah dengan yang sederhana:
Anda dapat membuat fungsi pembantu kecil, KISS compliant:
sumber
Berdasarkan jawaban di atas, saya baru saja menambahkan fungsi saya sendiri dan ini lebih jauh tidak bertentangan dengan fungsi jquery yang tersedia seperti .hide (), .show (), .toggle (). Semoga ini bisa membantu.
sumber
Saya memecahkan masalah saya dengan mengedit file CSS Bootstrap, lihat dokumen mereka:
.menyembunyikan:
.hidden adalah apa yang seharusnya kita gunakan sekarang, tetapi sebenarnya:
"FadeIn" jQuery tidak akan berfungsi karena "visibilitas".
Jadi, untuk Bootstrap terbaru, .hide tidak lagi digunakan, tetapi masih dalam file min.css. jadi saya meninggalkan .hidden SEBAGAIMANA ADANYA dan baru saja menghapus kelas "! Penting" dari kelas ".Sembunyikan" (yang seharusnya sudah tidak digunakan lagi). tetapi Anda juga bisa menimpanya di CSS Anda sendiri, saya hanya ingin semua aplikasi saya bertindak sama sehingga saya mengubah file Bootstrap CSS.
Dan sekarang jQuery "fadeIn ()" berfungsi.
Alasan saya melakukan ini vs saran di atas, adalah karena ketika Anda "removeClass ('. Hide')" objek segera ditampilkan, dan Anda melewatkan animasi :)
Saya harap ini membantu orang lain.
sumber
☀️ Jawaban yang tepat
Di Bootstrap 4 Anda menyembunyikan elemen:
🛑 Maka, tentu saja, Anda dapat benar-benar menunjukkannya dengan:
💓 Tetapi jika Anda melakukannya dengan cara semantik, dengan mentransfer tanggung jawab dari Bootstrap ke jQuery, maka Anda dapat menggunakan basa-basi jQuery lainnya seperti memudar:
sumber
Twitter Bootstrap menyediakan kelas untuk mengganti konten, lihat https://github.com/twbs/bootstrap/blob/3ee5542c990817324f0a07b97d01d1fe206fd8d6/less/utilities.less .
Saya benar-benar baru di jQuery, dan setelah membaca dokumen mereka, saya datang ke solusi lain untuk menggabungkan Twitter Bootstrap + jQuery.
Pertama, solusi untuk 'menyembunyikan' dan 'menampilkan' suatu elemen (class wsis-collapse) ketika mengklik elemen lain (class wsis-toggle), adalah dengan menggunakan .toggle .
Anda telah menyembunyikan elemen
.wsis-collapse
dengan menggunakan kelas Twitter Bootstrap (V3).hidden
juga:Ketika Anda mengklik
.wsis-toggle
, jQuery menambahkan gaya inline:Karena ada
!important
di Bootstrap Twitter, gaya inline ini tidak berpengaruh, jadi kami harus menghapus.hidden
kelas, tetapi saya tidak akan merekomendasikan.removeClass
ini! Karena ketika jQuery akan menyembunyikan sesuatu lagi, itu juga menambahkan gaya inline:Ini tidak sama dengan kelas Twitter Bootstrap, yang dioptimalkan untuk AT juga (pembaca layar). Jadi, jika kita ingin menunjukkan div yang tersembunyi, kita harus menyingkirkan
.hidden
kelas Bootstrap Twitter, jadi kita menyingkirkan pernyataan penting, tetapi jika kita menyembunyikannya lagi, kita ingin.hidden
kelas kembali lagi! Kita dapat menggunakan [.toggleClass] [3] untuk ini.Dengan cara ini Anda terus menggunakan kelas tersembunyi setiap kali konten disembunyikan.
The
.show
kelas dalam TB sebenarnya sama dengan gaya inline dari jQuery, baik'display: block'
. Tetapi jika.show
kelas di beberapa titik akan berbeda, maka Anda cukup menambahkan kelas ini juga:sumber