多次使用jquery对话框,参数略有不同

时间:2014-01-08 17:42:20

标签: javascript jquery dialog

我有一个网站,其中有很多确认页面,需要一个对话窗口。我想知道是否有更好的方法来编写我的代码,这样我就不必每次都拼出所有的对话框参数。每个对话框可能有一个不同的东西。通常完整的按钮功能不同。

例如:

  $('#dialogA').dialog(
    {
            autoOpen:false,
            width: 800,
            modal: true,
            resizable: false,
            closeOnEscape: false,
            buttons: 
    {
            "Complete": function() 
            {
                 //DO SOMETHING FOR A(possible print results of something)
            }
    }
    });

和另一个

    $('#dialogB').dialog(
    {
            autoOpen:false,
            width: 800,
            modal: true,
            resizable: false,
            closeOnEscape: false,
            buttons: 
    {
            "Complete": function() 
            {
                 //DO SOMETHING FOR B (possibly some ajax call)
            }
    }
    });

所以唯一改变的是完成按钮的功能。在外行人的条件中我猜我想设置一个包含所有对话框参数的变量....

1 个答案:

答案 0 :(得分:1)

扩展jQuery:

(function ($) {
    $.fn.extend({
    confirmDialog: function (options) {
        var defaults = {
            autoOpen:false,
            width: 800,
            modal: true,
            resizable: false,
            closeOnEscape: false,
            buttons:
        };

        var options = $.extend(defaults, options);
        $(this).dialog(options);
        }           
    }
})(jQuery);

并将其称为:

 $('#dialogB').dialog({Complete: function() { … }; });

您也可以在调用对话框时覆盖默认值...