代码之家  ›  专栏  ›  技术社区  ›  balexandre

如何在jqueryui对话框中设置自定义按钮(文本)?

  •  1
  • balexandre  · 技术社区  · 14 年前

    我知道我们可以很容易地设定 Close 按钮文本到变量,使用 closeText 选项

    $("#dialog").dialog({
        autoOpen: false,
        modal: true,
        closeText: btnCancel, // <-----
        overlay: {
            backgroundColor: '#000',
            opacity: 0.5
        },
        buttons: {
            Close: function() {
                $(this).dialog('close');
            }
        }
    });
    

    自定义名称 ?

    这不起作用:(

    var btnResetMapping = 'Reset Mapping';
    
    $("#dialog").dialog({
        autoOpen: false,
        modal: true,
        closeText: btnCancel,
        overlay: {
            backgroundColor: '#000',
            opacity: 0.5
        },
        buttons: {
            Close: function() {
                $(this).dialog('close');
            },
            btnResetMapping: function() {  // <-----
                // logic here
            },
        }
    });
    

    var btnResetMapping = '<%= Resources.PARbuttons.btnResetMapping %>';
    

    witch是从全局资源文件中正确加载的,并带有用于应用本地化的正确语句。

    $("#dialog").dialog({
        autoOpen: false,
        modal: true,
        closeText: btnCancel,
        overlay: {
            backgroundColor: '#000',
            opacity: 0.5
        },
        buttons: {
            Close: function() {
                $(this).dialog('close');
            },
            '<%= Resources.PARbuttons.btnResetMapping %>': function() {  // <-----
                // logic here
            },
        }
    });
    

    但我正在重构它,将javascript文件放在它自己的地方(单独的文件),我不仅想这样做(将HTML与javascript分开——这是一个业务Web应用程序,总是从INTRANET加载,从不使用Internet btw),而且想理解它。

    非常感谢。

    1 回复  |  直到 14 年前
        1
  •  4
  •   Nick Craver    14 年前

    可以使用括号表示法,如下所示:

    var myButtons = { Close: function() { $(this).dialog('close'); }  };
    myButtons[btnResetMapping] = function() { ...logic here... };
    $("#dialog").dialog({
        autoOpen: false,
        modal: true,
        closeText: btnCancel,
        overlay: {
            backgroundColor: '#000',
            opacity: 0.5
        },
        buttons: myButtons
    });
    

    btnResetMapping 之前