如何删除jQueryUI创建的对话框上的关闭按钮(右上角的X)?


当前回答

$("#div2").dialog({
   closeOnEscape: false,
   open: function(event, ui) { $('#div2').parent().find('a.ui-dialog-titlebar-close').hide();}
});

其他回答

我觉得这样更好。

open: function(event, ui) {
  $(this).closest('.ui-dialog').find('.ui-dialog-titlebar-close').hide();
}

您可以使用CSS来隐藏关闭按钮,而不是JavaScript:

.ui-dialog-titlebar-close{
    display: none;
}

如果你不想影响所有的情态动词,你可以使用如下规则

.hide-close-btn .ui-dialog-titlebar-close{
    display: none;
}

并将.hide close btn应用于对话框的顶部节点

使用这个纯CSS行怎么样?我发现对于具有给定Id的对话框,这是最干净的解决方案:

.ui-dialog[aria-describedby="IdValueOfDialog"] .ui-dialog-titlebar-close { display: none; }

我捕捉对话框的关闭事件。然后,此代码删除<div>(#dhx_combo_list):

open: function(event, ui) { 
  //hide close button.
  $(this).parent().children().children('.ui-dialog-titlebar-close').click(function(){
    $("#dhx_combo_list").remove();
  });
},

这里还有一个选项,就是使用CSS,它不会覆盖页面上的每个对话框。

CSS

.no-close .ui-dialog-titlebar-close {display: none }

HTML

<div class="selector" title="No close button">
    This is a test without a close button
</div>

Javascript。

$( ".selector" ).dialog({ dialogClass: 'no-close' });

工作示例