如何最好地移除jQuery UI对话框小部件上的关闭按钮?

22

如何最好地移除jQuery UI对话框框上的关闭按钮?

我不希望用户能够关闭对话框。

我正在处理代码方面的覆盖:

closeOnEscape: false,
beforeclose: function (event, ui) { return false; }

我希望不需要编写脚本来获取关闭按钮的类/ID并手动隐藏它。而且我也不想手动更改CSS,因为对话框可能有需要关闭按钮的情况。

我更喜欢通过对话框配置来解决问题,但我无法弄清楚如何做到这一点,或者对话框根本不允许这样做。

是否有关于如何配置对话框的建议?


1
可能是Remove close button on jQueryUI Dialog?的重复问题。 - Jim G.
2个回答

57

我发现这是一个不错的解决方案。

$("#myDialogID").dialog({
    closeOnEscape: false,
    beforeClose: function (event, ui) { return false; },
    dialogClass: "noclose"
});

不改变现有的样式,而是添加一个新元素:

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

添加类(class)的方法非常优雅,因为我将对话框标记为不可关闭。


1
这是一个非常优雅的解决方案。非常感谢! - Dwayne Hinterlang
1
不错的编辑@bishop,在撰写本文时,“beforeclose”仍然存在于古老的日子中 :-) https://github.com/jquery/jquery-ui/commit/b42125af4350eda14a6b15bb71f8dd336858fbd8/ - Alex KeySmith

4
我找到了另一个解决方案,对我有效:
$("#divID").dialog({
   closeOnEscape: false,
   open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接