Est-il possible d'ouvrir une boîte de dialogue jQuery UI sans barre de titre?
254
Je pense que la meilleure solution est d'utiliser l'option dialogClass
.
Un extrait des documents jquery UI:
pendant l'init: $('.selector').dialog({ dialogClass: 'noTitleStuff' });
ou si vous voulez après init. :
$('.selector').dialog('option', 'dialogClass', 'noTitleStuff');
J'ai donc créé une boîte de dialogue avec l'option dialogClass = 'noTitleStuff' et le CSS comme ça:
.noTitleStuff .ui-dialog-titlebar {display:none}
trop simple !! mais j'ai pris 1 jour pour penser pourquoi ma méthode de forage précédente id-> class ne fonctionnait pas. En fait, lorsque vous appelez la .dialog()
méthode, le div que vous transformez devient l'enfant d'un autre div (le vrai dialogue div) et peut-être un `` frère '' du titlebar
div, il est donc très difficile d'essayer de trouver ce dernier à partir de l'ancien.
J'ai trouvé un correctif pour supprimer dynamiquement la barre de titre.
Cela supprimera tous les éléments avec la classe 'ui-dialog-titlebar' après le rendu de la boîte de dialogue.
la source
#example .ui-dialog-titlebar...
. Cela fonctionnera de toute façon; mais le Javascript va éventuellement définir le css, donc je ne vois pas l'avantage de ne pas le faire en css pour commencer. Cela ne fait vraiment pas beaucoup de différence - ce avec quoi vous êtes le plus à l'aise :)Je pense que vous pouvez le cacher avec CSS:
Alternativement, vous pouvez l'appliquer à des boîtes de dialogue spécifiques avec l'
dialogClass
option:Découvrez " Theming " la boîte de dialogue. La suggestion ci-dessus utilise l'
dialogClass
option, qui semble être sur le point de disparaître en faveur d'une nouvelle méthode.la source
J'utilise ceci dans mes projets
la source
$(document).ready(function() { $('#video').click(function(){ $( "#dialog" ).dialog().siblings('.ui-dialog-titlebar').removeClass('ui-widget-header'); }); });
$("#myDialog").dialog('open').siblings('.ui-dialog-titlebar').remove();
est la meilleure réponse à mon avis +1 pour cette ligne de code$("#myDialog").prev().hide()
ou$("#myDialog").prev(".ui-dialog-titlebar").hide()
.Cela a fonctionné pour moi:
la source
Essayez d'utiliser
Cela masquera tous les titres des dialogues
la source
En fait, il y a encore une autre façon de le faire, en utilisant
widget
directement la boîte de dialogue :Vous pouvez ainsi obtenir le Widget de dialogue
puis faire
pour masquer le
titlebar
contenu de cette boîte de dialogue uniquementet dans une seule ligne de code (j'aime enchaîner):
Pas besoin d'ajouter une classe supplémentaire à la boîte de dialogue de cette façon, allez-y directement. Ça marche bien pour moi.
la source
Je trouve plus efficace et plus lisible d'utiliser l' événement ouvert et de masquer la barre de titre à partir de là. Je n'aime pas utiliser les recherches de nom de classe de page globale.
Facile.
la source
Vous pouvez utiliser jquery pour masquer la barre de titre après avoir utilisé dialogClass lors de l'initialisation de la boîte de dialogue.
pendant l'init:
En utilisant cette méthode, vous n'avez pas besoin de modifier votre fichier css, ce qui est également dynamique.
la source
J'aime remplacer les widgets jQuery.
Vous pouvez donc maintenant configurer si vous souhaitez afficher la barre de titre ou non
la source
Si vous avez plusieurs boîtes de dialogue, vous pouvez utiliser ceci:
la source
C'est la façon la plus simple de le faire et cela supprimera uniquement la barre de titre dans cette boîte de dialogue spécifique;
la source
La seule chose que j'ai découverte en masquant la barre de titre de la boîte de dialogue est que, même si l'affichage n'est pas affiché, les lecteurs d'écran la prennent et la lisent. Si vous avez déjà ajouté votre propre barre de titre, elle lira les deux, ce qui créera de la confusion.
Ce que j'ai fait a été supprimé du DOM en utilisant
$(selector).remove()
. Les lecteurs d'écran (et tous les autres) ne le verront plus car il n'existe plus.la source
Essaye ça
remplacer
divid
par correspondantid
la source
Ce formulaire suivant m'a résolu le problème.
la source
Je pense que la façon la plus simple de le faire serait de créer un nouveau widget myDialog, composé du widget de dialogue moins le code à barres du titre. Exciser le code à barres du titre semble simple.
https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.dialog.js
la source
Cela a fonctionné pour moi de masquer la barre de titre de la boîte de dialogue:
la source
Voici comment cela peut être fait.
Allez dans le dossier des thèmes -> base -> ouvrez jquery.ui.dialog.css
Trouver
Abonnements
si vous ne voulez pas afficher titleBar, définissez simplement display: none comme je l'ai fait ci-dessous.
Samilarly pour le titre aussi.
Vient maintenant le bouton de fermeture, vous pouvez également le définir aucun ou vous pouvez définir son
J'ai fait beaucoup de recherches mais rien alors j'ai eu cette idée en tête. Cependant, cela affectera l'application entière à ne pas avoir de bouton de fermeture, de barre de titre pour la boîte de dialogue, mais vous pouvez également surmonter cela en utilisant jquery et en ajoutant et en définissant css via jquery
voici la syntaxe pour cela
la source
.dialogs()
et seulement 1 ou si vous avez besoin de ces paramètres, il existe d'autres itinéraires que d'appliquer les paramètres globalement de cette façon.Pour moi, je voulais toujours utiliser les coins redimensionnables, je ne voulais tout simplement pas voir les lignes diagonales. j'ai utilisé
Je viens de réaliser que je commentais la mauvaise question. À la hauteur de mon homonyme :(
la source
Avez-vous essayé la solution à partir des documents jQuery UI? https://api.jqueryui.com/dialog/#method-open
Comme il est dit, vous pouvez faire comme ça ...
En CSS:
En JS:
la source
Vous pouvez supprimer la barre avec l'icône de fermeture avec les technologies décrites ci-dessus, puis ajouter vous-même une icône de fermeture.
CSS:
HTML:
// ajoute ce div au div contenant votre contenu
JS:
la source
allez dans votre jquery-ui.js (dans mon cas jquery-ui-1.10.3.custom.js) et recherchez this._createTitlebar (); et le commenter.
maintenant, n'importe lequel de vos dialogues apparaîtra avec des en-têtes. Si vous souhaitez personnaliser l'en-tête, allez simplement dans _createTitlebar (); et éditez le code à l'intérieur.
par
la source