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

问题描述 投票:0回答:3

我想创建一个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

jquery jquery-ui
3个回答
2
投票

试试这个:

// 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);

0
投票

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

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对话框时添加了一个空按钮集。清除按钮组后,我已经添加了按钮。


0
投票

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

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

$( ".selector" ).dialog({ 
    buttons: [ { 
        text: "Ok", 
        click: function() { 
            $( this ).dialog( "close" ); 
        } 
    } ] 
});
© www.soinside.com 2019 - 2024. All rights reserved.