【问题标题】:How to add extra buttons to jQuery dialog title bar如何向 jQuery 对话框标题栏添加额外的按钮
【发布时间】:2016-05-06 13:22:49
【问题描述】:

如何在 jQuery 对话框标题栏中添加额外的按钮

我想向 jQuery 对话框标题栏添加额外的按钮。我想向 jQuery 对话框标题栏添加至少 5 个按钮。最大“N”。

如下所示的按钮:

  1. 帮助按钮
  2. 最大化按钮
  3. 最小化按钮
  4. 关于按钮
 $( ".dialog" ).dialog({
       autoOpen: false,
       buttons: [
            {
                text: "Minimize",
                icon: "ui-icon-minimize",
                click: function( e ) {
                    //function
                }
            },
            {
                text: "Maximize",
                icon: "ui-icon-maximize",
                click: function( e ) {
                   //function
                }
            }
        ]
    });

【问题讨论】:

  • 我的代码写在上面的问题中。我不知道该怎么做。请帮我。我是 jQuery 和 jQuery UI 的新手。我通常处理 HTML、CSS 和 CSS 框架。
  • 有一个错字:Buttons: [ 应该是 buttons: [ ... 区分大小写
  • 完成请检查上面的代码。
  • 那么问题出在哪里?它对我有用...继续在该数组中添加按钮,只要你需要

标签: javascript jquery jquery-ui jquery-dialog


【解决方案1】:

与对话框关闭按钮达到更好的相似性。我看到了南瓜的答案和其他代码,包括 JQuery UI 上的 CSS/JS 代码,我来到了这里。

在你的对话框定义中添加一个对话框类属性,例如:

$("#yourDlg").dialog({
    autoOpen: false,
    height: 400,
    width: 800,
    modal: true,
    dialogClass: 'yourDialogClass', // any name works
 ...
});

在您的 CSS 文件/部分中添加:

.ui-dialog .ui-dialog-titlebar-help{
  position:absolute;
  right:2em; // This puts the help button along the close one, so change it accordingly
  top:50%;
  width:20px;
  margin:-10px 0 0 0;
  padding:1px;
  height:20px
}

在您的 javascript 文件或部分中添加以下内容(请记住使用与 dialogClass 属性中相同的类名):

$(".yourDialogClass").children(".ui-dialog-titlebar").append("<button id='btnHelp' class='ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-dialog-titlebar-help' type='button' role='button' title='Help'><span class='ui-button-icon-primary ui-icon ui-icon-help'></span><span class='ui-button-text'>Help</span></button>");

$("#btnHelp")
    .hover(function () {
        $(this).addClass('ui-state-hover');
    }, function () {
        $(this).removeClass('ui-state-hover');
    })
    .click(function (e) {
      // your click code here
      alert('Help');
      return false; // to avoid submit if any form
    });

有了这一切,你可以有一个更好的帮助按钮。希望这能满足您的期望并为他人节省时间。

【讨论】:

  • 感谢这篇文章!这个解决方案为我提供了在我的对话框小部件上实现自定义“帮助”按钮所需的一切。
【解决方案2】:

只需使用 jquery-ui api

// create the dialog
    $("div#google").dialog({
        "title": "Google",
        });
// find the titlebar
    var dlgtb = $("div#google").dialog("instance").uiDialogTitlebar; 
// add the button to titlebar    
    dlgtb.append("<button id='btnExternal'>M</button>"); 
// make it an button    
    $("#btnExternal").button({
        icon: "ui-icon-extlink",
        showLabel: false,
        });
// add click handler
    $("#btnExternal").click(function () {
        window.open("https://www.google.com", "google");
    }); 

【讨论】:

    【解决方案3】:

    要添加更多按钮,只需将它们添加到buttons 数组中

    $( ".dialog" ).dialog({
           autoOpen: false,
           buttons: [
                {
                    text: "Help",
                    icon: "ui-icon-help",
                    click: function( e ) {
                       //function
                    }
                },
                {
                    text: "Minimize",
                    icon: "ui-icon-minimize",
                    click: function( e ) {
                        //function
                    }
                },
                {
                    text: "Maximize",
                    icon: "ui-icon-maximize",
                    click: function( e ) {
                       //function
                    }
                },
                {
                    text: "About",
                    icon: "ui-icon-about",
                    click: function( e ) {
                       //function
                    }
                }
            ]
        });
    

    看一个例子HERE

    --- 编辑---

    现在我明白你要做什么了。我认为没有干净的方法可以做到这一点,所以我建议这样做:

    $( ".dialog" ).dialog({
           autoOpen: true,
           buttons: [
                {
                    text: "Minimize",
                    icon: "ui-icon-minimize",
                    click: function( e ) {
                        //function
                    }
                },
                {
                    text: "Maximize",
                    icon: "ui-icon-maximize",
                    click: function( e ) {
                       //function
                    }
                }
            ],
            create: function( event, ui ) {
                $('.ui-dialog-buttonset').prependTo('.ui-dialog-titlebar');
            }
        });
    

    https://jsfiddle.net/myh5d2sz/1/

    【讨论】:

    • 我想让最大化和最小化按钮与关闭“X”按钮相同。并且最大化和最小化都应该是浮动的。
    猜你喜欢
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 2011-12-09
    相关资源
    最近更新 更多