Apakah mungkin untuk membuka Dialog UI jQuery tanpa bilah judul?
254
Saya pikir solusi terbaik adalah dengan menggunakan opsi dialogClass
.
Ekstrak dari jquery UI docs:
selama init: $('.selector').dialog({ dialogClass: 'noTitleStuff' });
atau jika Anda ingin setelah init. :
$('.selector').dialog('option', 'dialogClass', 'noTitleStuff');
Jadi saya membuat beberapa dialog dengan opsi dialogClass = 'noTitleStuff' dan css seperti itu:
.noTitleStuff .ui-dialog-titlebar {display:none}
terlalu sederhana !! tapi saya butuh 1 hari untuk memikirkan mengapa metode pengeboran kelas id saya sebelumnya tidak berfungsi. Bahkan ketika Anda memanggil .dialog()
metode div yang Anda ubah menjadi anak dari div lain (dialog dialog yang sebenarnya) dan mungkin 'saudara' dari titlebar
div, jadi sangat sulit untuk mencoba menemukan yang terakhir mulai dari yang sebelumnya.
Saya menemukan perbaikan untuk menghapus bilah judul secara dinamis.
Ini akan menghapus semua elemen dengan kelas 'ui-dialog-titlebar' setelah kotak dialog diberikan.
sumber
#example .ui-dialog-titlebar...
. Bagaimanapun juga itu akan berhasil; tetapi Javascript akan mengatur css pada akhirnya, jadi saya tidak melihat manfaat dari tidak melakukannya di css untuk memulai. Itu benar-benar tidak membuat banyak perbedaan - apa pun yang Anda paling nyaman dengan :)Saya yakin Anda bisa menyembunyikannya dengan CSS:
Atau, Anda dapat menerapkan ini pada dialog tertentu dengan
dialogClass
opsi:Periksa " Theming " Dialog. Saran di atas memanfaatkan
dialogClass
opsi, yang tampaknya ada di jalan keluar yang mendukung metode baru.sumber
Saya menggunakan ini dalam proyek saya
sumber
$(document).ready(function() { $('#video').click(function(){ $( "#dialog" ).dialog().siblings('.ui-dialog-titlebar').removeClass('ui-widget-header'); }); });
$("#myDialog").dialog('open').siblings('.ui-dialog-titlebar').remove();
adalah jawaban terbaik menurut pendapat saya +1 untuk baris kode ini$("#myDialog").prev().hide()
atau$("#myDialog").prev(".ui-dialog-titlebar").hide()
.Ini bekerja untuk saya:
sumber
Coba gunakan
Ini akan menyembunyikan semua judul dialog
sumber
Sebenarnya masih ada cara lain untuk melakukannya, menggunakan dialog
widget
langsung:Anda bisa mendapatkan Widget Dialog demikian
dan kemudian lakukan
untuk menyembunyikan
titlebar
dialog itu sajadan dalam satu baris kode (saya suka chaining):
Tidak perlu menambahkan kelas tambahan ke dialog dengan cara ini, langsung saja lakukan. Bekerja dengan baik untuk saya.
sumber
Saya merasa lebih efisien, dan lebih mudah dibaca, untuk menggunakan acara terbuka , dan menyembunyikan bilah judul dari sana. Saya tidak suka menggunakan pencarian nama kelas global-halaman.
Sederhana.
sumber
Anda dapat menggunakan jquery untuk menyembunyikan bilah judul setelah menggunakan dialogClass saat menginisialisasi dialog.
selama init:
Dengan menggunakan metode ini, Anda tidak perlu mengubah file css Anda, dan ini juga dinamis.
sumber
Saya suka mengganti widget jQuery.
Jadi sekarang Anda dapat mengatur apakah Anda ingin menampilkan bilah judul atau tidak
sumber
Jika Anda memiliki banyak dialog, Anda dapat menggunakan ini:
sumber
Ini adalah cara termudah untuk melakukannya dan itu hanya akan menghapus batang judul dalam satu dialog tertentu;
sumber
Satu hal yang saya temukan ketika menyembunyikan bilah judul Dialog adalah bahwa, meskipun tampilan tidak ada, pembaca layar masih mengambilnya dan akan membacanya. Jika Anda sudah menambahkan bilah judul Anda sendiri, itu akan membaca keduanya, menyebabkan kebingungan.
Apa yang saya lakukan dihapus dari menggunakan DOM
$(selector).remove()
. Sekarang pembaca layar (dan semua orang lain) tidak akan melihatnya karena sudah tidak ada.sumber
Coba ini
ganti
divid
dengan yang sesuaiid
sumber
Bentuk selanjutnya ini memperbaiki saya.
sumber
Saya pikir cara paling bersih untuk melakukannya adalah membuat widget myDialog baru, yang terdiri dari widget dialog minus kode batang judul. Menekan kode batang judul terlihat langsung.
https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.dialog.js
sumber
Ini berhasil bagi saya untuk menyembunyikan bilah judul kotak dialog:
sumber
Inilah yang bisa dilakukan.
Buka folder tema -> basis -> buka jquery.ui.dialog.css
Temukan
Berikut ini
jika Anda tidak ingin menampilkan titleBar maka cukup atur display: tidak seperti yang saya lakukan di berikut ini.
Samil untuk judul juga.
Sekarang, tutup tombol Anda juga dapat mengaturnya tidak ada atau Anda dapat mengaturnya
Saya melakukan banyak pencarian tetapi tidak ada yang muncul di pikiran saya. Namun ini akan memengaruhi seluruh aplikasi untuk tidak memiliki tombol tutup, bilah judul untuk dialog, tetapi Anda juga dapat mengatasinya dengan menggunakan jquery dan menambahkan serta mengatur css melalui jquery
di sini adalah sintaks untuk ini
sumber
.dialogs()
dan hanya 1 atau lebih yang memerlukan pengaturan ini, maka ada rute alternatif daripada menerapkan pengaturan secara global dengan cara ini.Bagi saya, saya masih ingin menggunakan sudut yang cukup besar, hanya saja tidak ingin jadi melihat garis diagonal. Saya menggunakan
Baru sadar saya mengomentari pertanyaan yang salah. Hidup sesuai dengan nama saya :(
sumber
Sudahkah Anda mencoba solusi dari jQuery UI docs? https://api.jqueryui.com/dialog/#method-open
Seperti dikatakan Anda dapat melakukan seperti ini ...
Dalam CSS:
Di JS:
sumber
Anda dapat menghapus bilah dengan ikon tutup dengan teknik yang dijelaskan di atas dan kemudian menambahkan ikon tutup sendiri.
CSS:
HTML:
// tambahkan div ini ke div yang menyimpan konten Anda
JS:
sumber
buka jquery-ui.js Anda (dalam kasus saya jquery-ui-1.10.3.custom.js) dan cari this._createTitlebar (); dan berkomentar.
sekarang siapa pun dialog Anda akan muncul dengan tajuk. Jika Anda ingin mengkustomisasi header, buka _createTitlebar (); dan edit kode di dalamnya.
oleh
sumber