Можно ли открыть диалоговое окно jQuery UI без строки заголовка?
254
Я думаю, что лучшим решением является использование этой опции dialogClass
.
Выдержка из документов JQuery UI:
во время init: $('.selector').dialog({ dialogClass: 'noTitleStuff' });
или если вы хотите после init. :
$('.selector').dialog('option', 'dialogClass', 'noTitleStuff');
Итак, я создал диалог с опцией dialogClass = 'noTitleStuff' и css вот так:
.noTitleStuff .ui-dialog-titlebar {display:none}
слишком просто !! но я потратил 1 день, чтобы подумать, почему мой предыдущий метод сверления id-> class не работал. Фактически, когда вы вызываете .dialog()
метод, преобразованный вами div становится потомком другого div (реального div диалогового окна) и, возможно, «братом» titlebar
div, поэтому очень трудно попытаться найти последний, начиная с первого.
Я нашел решение для динамического удаления строки заголовка.
Это удалит все элементы с классом 'ui-dialog-titlebar' после отображения диалогового окна.
источник
#example .ui-dialog-titlebar...
. Это будет работать в любом случае; но Javascript в конце концов установит CSS, поэтому я не вижу преимущества в том, чтобы не делать это в CSS для начала. Это действительно не имеет большого значения - независимо от того, с чем вам удобнее всего :)Я считаю, что вы можете скрыть это с помощью CSS:
Кроме того, вы можете применить это к определенным диалогам с
dialogClass
опцией:Проверьте " Theming " диалог. Вышеупомянутое предложение использует
dialogClass
опцию, которая, по-видимому, находится в процессе выхода в пользу нового метода.источник
Я использую это в своих проектах
источник
$(document).ready(function() { $('#video').click(function(){ $( "#dialog" ).dialog().siblings('.ui-dialog-titlebar').removeClass('ui-widget-header'); }); });
$("#myDialog").dialog('open').siblings('.ui-dialog-titlebar').remove();
лучший ответ на мой взгляд +1 для этой строки кода$("#myDialog").prev().hide()
или$("#myDialog").prev(".ui-dialog-titlebar").hide()
.Это сработало для меня:
источник
Попробуйте использовать
Это скроет все заголовки диалогов
источник
На самом деле есть еще один способ сделать это, используя диалог
widget
напрямую:Вы можете получить виджет диалога таким образом
а затем сделать
скрыть только
titlebar
внутри этого диалогаи в одной строке кода (мне нравится цепочка):
Не нужно добавлять дополнительный класс в диалог таким образом, просто перейдите к нему напрямую. Работа хорошо для меня.
источник
Я считаю более эффективным и более читабельным использование события open и скрытие строки заголовка оттуда. Мне не нравится использовать поиск имени класса по всему миру.
Просто.
источник
Вы можете использовать jquery, чтобы скрыть заголовок заголовка после использования dialogClass при инициализации диалога.
во время init:
Используя этот метод, вам не нужно менять файл CSS, и это тоже динамично.
источник
Мне нравится переопределять виджеты jQuery.
Теперь вы можете настроить, хотите ли вы показывать строку заголовка или нет
источник
Если у вас есть несколько диалогов, вы можете использовать это:
источник
Это самый простой способ сделать это, и он удалит заголовок только в этом конкретном диалоге;
источник
Одна вещь, которую я обнаружил, скрывая заголовок Dialog, - это то, что, даже если display отсутствует, программы чтения с экрана все равно поднимают его и будут читать. Если вы уже добавили свою собственную строку заголовка, она будет читать оба, вызывая путаницу.
То, что я сделал, было удалено из DOM с помощью
$(selector).remove()
. Теперь программы чтения с экрана (и все остальные) не увидят его, потому что он больше не существует.источник
Попробуй это
заменить
divid
на соответствующийid
источник
Эта следующая форма устранила мне проблему.
источник
Я думаю, что самый чистый способ сделать это - создать новый виджет myDialog, состоящий из диалогового виджета без кода заголовка. Уничтожение штрих-кода заголовка выглядит просто.
https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.dialog.js
источник
Это помогло мне скрыть строку заголовка диалогового окна:
источник
Вот как это можно сделать.
Перейдите в папку с темами -> base -> open jquery.ui.dialog.css
найти
Подписок
если вы не хотите отображать titleBar, просто установите display: none, как я сделал в следующем.
Самиларлы за титул тоже.
Теперь приходит кнопка закрытия, вы также можете установить его нет или вы можете установить его
Я сделал много поисков, но ничего, тогда у меня возникла эта идея. Однако это приведет к тому, что у всего приложения не будет кнопки закрытия, строки заголовка для диалога, но вы также можете преодолеть это, используя jquery, добавляя и устанавливая css через jquery.
вот синтаксис для этого
источник
.dialogs()
и эти настройки нужны только 1 или около того, то есть альтернативные маршруты, чем глобальное применение настроек таким способом.Я все еще хотел использовать изменяемые углы, просто не хотел видеть диагональные линии. я использовал
Просто понял, что я комментирую не тот вопрос. Дожить до моего тезки :(
источник
Вы пробовали решение из документов JQuery UI? https://api.jqueryui.com/dialog/#method-open
Как говорится, вы можете сделать это так ...
В CSS:
В JS:
источник
Вы можете удалить панель со значком закрытия с помощью описанных выше техник, а затем добавить значок закрытия самостоятельно.
CSS:
HTML:
// добавляем этот div в div, содержащий ваш контент
JS:
источник
перейдите к вашему jquery-ui.js (в моем случае jquery-ui-1.10.3.custom.js) и найдите this._createTitlebar (); и прокомментируй это.
теперь любой ваш диалог появится с заголовками. Если вы хотите настроить заголовок, просто перейдите к _createTitlebar (); и отредактируйте код внутри.
по
источник