¿Es posible abrir un cuadro de diálogo de jQuery UI sin una barra de título?
254
Creo que la mejor solución es usar la opción dialogClass
.
Un extracto de jquery UI docs:
durante init: $('.selector').dialog({ dialogClass: 'noTitleStuff' });
o si quieres después de init. :
$('.selector').dialog('option', 'dialogClass', 'noTitleStuff');
Así que creé un diálogo con la opción dialogClass = 'noTitleStuff' y el CSS así:
.noTitleStuff .ui-dialog-titlebar {display:none}
demasiado simple !! pero me tomé 1 día para pensar por qué mi método de perforación id-> class anterior no funcionaba. De hecho, cuando llama al .dialog()
método el div que transforma se convierte en hijo de otro div (el div de diálogo real) y posiblemente en un 'hermano' del titlebar
div, por lo que es muy difícil tratar de encontrar el último comenzando por el anterior.
Descubrí una solución para eliminar dinámicamente la barra de título.
Esto eliminará todos los elementos con la clase 'ui-dialog-titlebar' después de que se muestre el cuadro de diálogo.
fuente
#example .ui-dialog-titlebar...
. Funcionará de cualquier manera; pero el Javascript finalmente configurará el CSS, por lo que no veo el beneficio de no hacerlo en CSS para empezar. Realmente no hace mucha diferencia, sea lo que sea con lo que se sienta más cómodo :)Creo que puedes ocultarlo con CSS:
Alternativamente, puede aplicar esto a cuadros de diálogo específicos con la
dialogClass
opción:Echa un vistazo a " Theming " el cuadro de diálogo. La sugerencia anterior hace uso de la
dialogClass
opción, que parece estar en camino a favor de un nuevo método.fuente
Lo uso en mis proyectos
fuente
$(document).ready(function() { $('#video').click(function(){ $( "#dialog" ).dialog().siblings('.ui-dialog-titlebar').removeClass('ui-widget-header'); }); });
$("#myDialog").dialog('open').siblings('.ui-dialog-titlebar').remove();
es la mejor respuesta en mi opinión +1 para esta línea de código$("#myDialog").prev().hide()
o$("#myDialog").prev(".ui-dialog-titlebar").hide()
.Esto funcionó para mí:
fuente
Intenta usar
Esto ocultará todos los títulos de los cuadros de diálogo.
fuente
En realidad, hay otra forma de hacerlo, usando el diálogo
widget
directamente:Puede obtener el widget de diálogo de esta manera
y luego hacer
para ocultar
titlebar
solo dentro de ese diálogoy en una sola línea de código (me gusta encadenar):
No es necesario agregar una clase adicional al cuadro de diálogo de esta manera, solo ve directamente. Funciona bien para mí.
fuente
Me resulta más eficiente y más legible utilizar el evento abierto y ocultar la barra de título desde allí. No me gusta usar búsquedas de nombre de clase de página global.
Sencillo.
fuente
Puede usar jquery para ocultar la barra de título después de usar dialogClass al inicializar el diálogo.
durante init:
Al usar este método, no necesita cambiar su archivo css, y esto también es dinámico.
fuente
Me gusta anular los widgets jQuery.
Así que ahora puede configurar si desea mostrar la barra de título o no
fuente
Si tiene múltiples diálogos, puede usar esto:
fuente
Esta es la forma más fácil de hacerlo y solo eliminará la barra de título en ese cuadro de diálogo específico;
fuente
Lo único que descubrí al ocultar la barra de título de Diálogo es que, incluso si la visualización no es ninguna, los lectores de pantalla aún la toman y la leen. Si ya agregó su propia barra de título, leerá ambos, causando confusión.
Lo que hice fue eliminarlo del DOM usando
$(selector).remove()
. Ahora los lectores de pantalla (y todos los demás) no lo verán porque ya no existe.fuente
Prueba esto
reemplazar
divid
por correspondienteid
fuente
Esta siguiente forma me solucionó el problema.
fuente
Creo que la forma más limpia de hacerlo sería crear un nuevo widget myDialog, que consiste en el widget de diálogo menos el código de barras del título. Excluir el código de barras del título parece sencillo.
https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.dialog.js
fuente
Esto funcionó para mí para ocultar la barra de título del cuadro de diálogo:
fuente
Así es como se puede hacer.
Vaya a la carpeta de temas -> base -> abra jquery.ui.dialog.css
Encontrar
Seguimientos
si no desea mostrar titleBar, simplemente configure display: none como lo hice en lo siguiente.
Samilarly por el título también.
Ahora viene el botón Cerrar, también puede configurarlo como ninguno o puede configurar su
Hice mucha búsqueda pero nada, entonces tuve esta idea en mi mente. Sin embargo, esto afectará a toda la aplicación para que no tenga el botón de cierre, la barra de título para el diálogo, pero también puede superar esto usando jquery y agregando y configurando css a través de jquery
aquí hay sintaxis para esto
fuente
.dialogs()
y solo 1 o más necesita estas configuraciones, entonces hay rutas alternativas que aplicar las configuraciones globalmente de esta manera.Para mí, todavía quería usar las esquinas redimensionables, simplemente no quería ver las líneas diagonales. solía
Me acabo de dar cuenta de que estaba comentando la pregunta equivocada. Haciendo honor a mi tocayo :(
fuente
¿Has probado la solución de jQuery UI docs? https://api.jqueryui.com/dialog/#method-open
Como dice que puedes hacer así ...
En CSS:
En JS:
fuente
Puede eliminar la barra con el icono de cierre con las técnicas descritas anteriormente y luego agregar un icono de cierre usted mismo.
CSS:
HTML:
// agrega este div al div que contiene tu contenido
JS:
fuente
vaya a su jquery-ui.js (en mi caso jquery-ui-1.10.3.custom.js) y busque this._createTitlebar (); y comentarlo
ahora cualquiera de los suyos aparecerá con cuadros de diálogo. Si desea personalizar el encabezado simplemente vaya a _createTitlebar (); y edite el código adentro.
por
fuente