如何删除jQueryUI创建的对话框上的关闭按钮(右上角的X)?
当前回答
您可以使用CSS来隐藏关闭按钮,而不是JavaScript:
.ui-dialog-titlebar-close{
display: none;
}
如果你不想影响所有的情态动词,你可以使用如下规则
.hide-close-btn .ui-dialog-titlebar-close{
display: none;
}
并将.hide close btn应用于对话框的顶部节点
其他回答
对于多个对话框,“最佳”答案并不好。这里有一个更好的解决方案。
open: function(event, ui) {
//hide close button.
$(this).parent().children().children('.ui-dialog-titlebar-close').hide();
},
使用这个纯CSS行怎么样?我发现对于具有给定Id的对话框,这是最干净的解决方案:
.ui-dialog[aria-describedby="IdValueOfDialog"] .ui-dialog-titlebar-close { display: none; }
对于那些正在使用DialogExtendjQueryExtension的用户,您可以使用可关闭选项来管理此功能以及此体面扩展提供的许多其他调整。
注意,如果您已经在使用DialogExtend,那么任何前述的DialogCSS黑客在初始化时都会被DialogExtend拦截。
这是针对jQuery UI 1.12的。我为“classes”选项添加了以下配置设置
classes: {
'ui-dialog-titlebar-close': 'hidden',
},
整个对话框初始化如下所示:
ConfirmarSiNo(titulo, texto, idPadre, fnCerrar) {
const DATA_RETORNO = 'retval';
$('confirmar-si-no').dialog({
title: titulo,
modal: true,
classes: {
'ui-dialog-titlebar-close': 'hidden',
},
appendTo: `#${idPadre}`,
open: function fnOpen() { $(this).text(texto); },
close: function fnClose() {
let eligioSi = $(this).data(DATA_RETORNO) == true;
setTimeout(function () { fnCerrar(eligioSi); }, 30);
},
buttons: {
'Si, por favor': function si() { $(this).data(DATA_RETORNO, true); $(this).dialog("close"); },
'No, gracias': function no() { $(this).data(DATA_RETORNO, false); $(this).dialog("close"); }
}
});
}
我使用以下脚本调用来显示它:
ConfirmarSiNo('Titulo',
'¿Desea actualizar?',
idModalPadre,
(eligioSi) => {
if (eligioSi) {
this.$tarifa.val(tarifa.tarifa);
this.__ActualizarTarifa(tarifa);
}
});
在Html主体中,我有以下包含对话框的div:
<div class="modal" id="confirmar-si-no" title="" aria-labelledby="confirmacion-label">
mensaje
</div>
最终结果是:
函数“ConfirmarSiNo”基于帖子中的“Whome”答案。如何在Jquery UI对话框中实现“确认”对话框?
我最终发现这是有效的(请注意,第三行覆盖了打开的函数,该函数查找按钮并隐藏它):
$("#div2").dialog({
closeOnEscape: false,
open: function(event, ui) {
$(".ui-dialog-titlebar-close", ui.dialog || ui).hide();
}
});
要隐藏所有对话框上的关闭按钮,也可以使用以下CSS:
.ui-dialog-titlebar-close {
visibility: hidden;
}
推荐文章
- HTML的“nonce”属性用于脚本和样式元素的目的是什么?
- 我如何在HTML中创建一个泪滴?
- 在另一个js文件中调用JavaScript函数
- 如何在svg元素中使用z索引?
- 如何求一个数的长度?
- 使用jQuery获取第二个孩子
- 我怎么能强迫一个长字符串没有任何空白被包装?
- 在哪里放置JavaScript在HTML文件?
- 如何在引导栏中居中内容?
- IE8问题推特引导3
- .append(), prepend(), .after()和.before()
- 是否有可能使一个div 50px小于100%在CSS3?
- 为什么CSS选择器/ HTML属性首选破折号?
- CSS选择器-具有给定子元素的元素
- 如何在标题属性中转义双引号