扩展 jQuery UI Dialog 打开功能

发布于 2024-10-18 03:12:21 字数 1456 浏览 1 评论 0原文

是否可以扩展 jQuery UI 对话框的“打开”回调函数?例如,我正在使用另一个名为“confirmDialog”的对话框来扩展我的 modalDialog。打开 modalDialog 对话框时,我正在运行几个函数,我想将它们转移到确认对话框中,同时还添加另一个函数。这是代码:

// Default settings for the modal dialog
moDefaults : {
    autoOpen: 'false',
    modal: true,
    draggable: false,
    resizable: false,
    buttons: {},
    title: 'Title',
    width: 'auto',
    open: function(getDataOnOpen){
        // Add open class
        jQuery(this).addClass('open_dialog');

        // Add classes to action button
        var buttonPane = jQuery(this).next();
        jQuery(buttonPane).find('button:first').addClass('accept').addClass('action');

        // Hide the default dialog close button
        jQuery('.ui-dialog-titlebar-close').hide();

        // IE hack
        jQuery(this).css('overflow','hidden');

        // Ajax call to make on open
        getDataOnOpen;
    },
    close: function(){
        // Remove open class
        jQuery('.ui-dialog').removeClass('open_dialog');
    }
},

modalDialog : function(options, dialogId){

    if(options){
        jQuery.extend(true, mw.moDefaults, options);
    }

    jQuery(dialogId).dialog(mw.moDefaults);
},

confirmDialog : function(options){

    var defaults = {
        dialogClass:'confirm_dialog',
        minWidth: 255,
        modal: true
    };

    var settings = $.extend(mw.moDefaults, defaults, options);

    $.extend(mw.modalDialog(settings,'#conf_dialog'));
}

提前致谢!

Is it possible to extend the "open" callback function for the jQuery UI dialog? For example, I am extending my modalDialog box with another called confirmDialog. When opening the modalDialog dialog, I am running a couple of functions that I want to carry over to the confirmDialog but also add another function with it. Here is the code:

// Default settings for the modal dialog
moDefaults : {
    autoOpen: 'false',
    modal: true,
    draggable: false,
    resizable: false,
    buttons: {},
    title: 'Title',
    width: 'auto',
    open: function(getDataOnOpen){
        // Add open class
        jQuery(this).addClass('open_dialog');

        // Add classes to action button
        var buttonPane = jQuery(this).next();
        jQuery(buttonPane).find('button:first').addClass('accept').addClass('action');

        // Hide the default dialog close button
        jQuery('.ui-dialog-titlebar-close').hide();

        // IE hack
        jQuery(this).css('overflow','hidden');

        // Ajax call to make on open
        getDataOnOpen;
    },
    close: function(){
        // Remove open class
        jQuery('.ui-dialog').removeClass('open_dialog');
    }
},

modalDialog : function(options, dialogId){

    if(options){
        jQuery.extend(true, mw.moDefaults, options);
    }

    jQuery(dialogId).dialog(mw.moDefaults);
},

confirmDialog : function(options){

    var defaults = {
        dialogClass:'confirm_dialog',
        minWidth: 255,
        modal: true
    };

    var settings = $.extend(mw.moDefaults, defaults, options);

    $.extend(mw.modalDialog(settings,'#conf_dialog'));
}

Thanks in advance SO!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文