如何在创建Jquery对话框UI后添加按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在创建Jquery对话框UI后添加按钮相关的知识,希望对你有一定的参考价值。

我想创建一个jquery对话框,需要添加按钮。

我正在使用以下代码在IE中工作正常,但在Mozilla中没有。

任何人都可以弄清楚这里的问题是什么?

function dialog_box(dynDiv, rootTemplate) {
    var dialog_buttons = rootTemplate.buttons;
    var dialog = $("#" + dynDiv.id).dialog({
        hide: "explode",
        title: rootTemplate.etype,
        buttons:'',
        text: rootTemplate.text,
        resizable: true,
        minWidth: 200,
        minHeight: 150,
        close: function () {
            $(dialog).dialog('destroy').remove();
        }
    });


    var buttonSet = $("#" + dynDiv.id).parent().find('.ui-dialog-buttonset');
    $.each(dialog_buttons, function (index, props) {
        var newButton = $('<button></button>', {
            id: "btn" + dynDiv.id + props.id,
            text: props.text
        });
        newButton.button().unbind().on("click", props.handler);

        $(buttonSet).append(newButton);      
    });


}

Sample

答案

试试这个:

// Retrieve buttons hash
var buttons = dialog.dialog("option", "buttons"); 
// Extend the hash (so you're able to keep the old buttons)
$.extend(buttons, { props.text: props.handler } );
// Set it again
dialog.dialog("option", "buttons", buttons);
另一答案

我在发布的代码中做了一些小改动,它运行正常。修改后的部分突出

function dialog_box(dynDiv, rootTemplate) {
        var dialog_buttons = rootTemplate.buttons;
        var dialog = $("#" + dynDiv.id).dialog({
            hide: "explode",
            title: rootTemplate.etype,
            **buttons:[{}],**
            text: rootTemplate.text,
            resizable: true,
            minWidth: 200,
            minHeight: 150,
            close: function () {
                $(dialog).dialog('destroy').remove();
            }
        });


        var buttonSet = $("#" + dynDiv.id).parent().find('.ui-dialog-buttonset');
        **$(buttonSet).empty();**
        $.each(dialog_buttons, function (index, props) {
            var newButton = $('<button></button>', {
                id: "btn" + dynDiv.id + props.id,
                text: props.text
            });
            newButton.button().unbind().on("click", props.handler);

            $(buttonSet).append(newButton);      
        });


    }

因此在创建JqueryUI对话框时添加了一个空按钮集。清除按钮组后,我已经添加了按钮。

另一答案

我认为您可以在创建对话框时使用按钮选项创建按钮作为选项:

http://api.jqueryui.com/dialog/#option-buttons

$( ".selector" ).dialog({ 
    buttons: [ { 
        text: "Ok", 
        click: function() { 
            $( this ).dialog( "close" ); 
        } 
    } ] 
});

以上是关于如何在创建Jquery对话框UI后添加按钮的主要内容,如果未能解决你的问题,请参考以下文章

神秘的鼠标事件关闭 jQuery UI 对话框

如何删除 jQuery-ui 对话框标题栏?

如何设置与不同按钮相关的jQuery UI对话框定位?

jQuery UI 对话框按钮图标

jquery-ui 对话框不居中,关闭按钮奇怪的行为

用JS调整jquery UI对话框的大小?