24

我希望能够创建模态对话框,例如

close: function() {
    $(this).remove();
}

默认选项,无需在创建对话框时指定这些参数,但以某种方式在一处覆盖这些参数。

这可能吗?

4

3 回答 3

63

我也需要覆盖默认选项,并花了一些时间来弄清楚 jQuery UI 1.8:

$.extend($.ui.dialog.prototype.options, {
    modal: true,
    resizable: false,
    draggable: false
});

上面的代码将允许您在对话框选项顶部放置任何内容。上述方法应该适用于大多数 UI 组件(它还可以让您对现有的功能进行原型设计,或添加到其中)。

于 2010-03-05T18:40:27.317 回答
3

然后,您应该创建一个调用 jQuery 对话框函数的抽象。

基本上,不是在你想使用 jQuery 对话框的每个地方创建选项文字,而是创建一个函数来创建你想要的选项,然后从中调用 jQuery 对话框函数。

然后,在代码的所有区域中,调用您编写的封装代码的函数。

这个过程称为封装,适用于大多数(如果不是全部)软件开发语言。主要好处之一是它使您的代码更易于维护。

于 2010-02-18T08:06:54.970 回答
3

jQuery UI 中的对话框和其他小部件使用其默认值定义哈希。您可以在加载 jQuery UI 后覆盖这些。

在 javascript 中搜索设置默认值的行:

$.extend($.ui.dialog, {
version: "1.7.2",
defaults: {
    ...

例如,在您的 javascript 中,您可以使用以下命令关闭 autoOpen:

$.ui.dialog.defaults.autoOpen = false;

或者您可以合并选项的哈希:

$.extend($.ui.dialog.defaults, {
  autoOpen: false,
  title: 'Default title'
})
于 2010-02-18T08:25:52.880 回答