extend jquery ui dialog (add more options)

后端 未结 2 1709
一向
一向 2020-12-18 12:18

how I can create and add new options for jQuery dialog? for example: I like that through on the setting options can control the display of title bar or display the close but

相关标签:
2条回答
  • 2020-12-18 12:51

    It's a little easier than I expressed in my comment.

    // store old method for later use
    var oldcr = $.ui.dialog.prototype._create;
    // add the two new options with default values
    $.ui.dialog.prototype.options.showTitlebar = true;
    $.ui.dialog.prototype.options.showClosebutton = true;
    // override the original _create method
    $.ui.dialog.prototype._create = function(){
        oldcr.apply(this,arguments);
        if (!this.options.showTitlebar) {
           this.uiDialogTitlebar.hide();
        }
        else if (!this.options.showClosebutton) {
           this.uiDialogTitlebar.find(".ui-dialog-titlebar-close").hide();
        }
    };
    
    // this is how you use it
    $("<div />").dialog({
        showClosebutton: false
    });
    // or
    $("<div />").dialog({
        showTitlebar: false
    });
    

    Obviously, if the titlebar is hidden, the close button will also be hidden since it is part of the titlebar.

    0 讨论(0)
  • 2020-12-18 12:56

    Starting from jQuery UI 1.9 , you can extend widgets in a much nicer way without creating a new widget.

    http://learn.jquery.com/jquery-ui/widget-factory/extending-widgets/

    See - Redefining Widgets.

    $.widget( "ui.dialog", $.ui.dialog, {
        open: function() {
            console.log( "open" );
            return this._super();
        }
    });
    
    $( "<div>" ).dialog();
    
    0 讨论(0)
提交回复
热议问题