Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 来自变量的jQuery UI对话框按钮_Javascript_Jquery_Jquery Ui_Localization_Jquery Ui Dialog - Fatal编程技术网

Javascript 来自变量的jQuery UI对话框按钮

Javascript 来自变量的jQuery UI对话框按钮,javascript,jquery,jquery-ui,localization,jquery-ui-dialog,Javascript,Jquery,Jquery Ui,Localization,Jquery Ui Dialog,在jQueryUI对话框中,我有一些变量保存着按钮的翻译标签 我无法用变量本身填充button数组键,也无法找到任何方法让它将变量当作字符串处理 translations['ok'] = 'ok'; translatinos['cancel'] = 'cancel'; // not working jQuery('#foo').dialog({ buttons: { translations['ok']: function() { alert('foo-ok')

在jQueryUI对话框中,我有一些变量保存着按钮的翻译标签

我无法用变量本身填充button数组键,也无法找到任何方法让它将变量当作字符串处理

translations['ok'] = 'ok';
translatinos['cancel'] = 'cancel';

// not working
jQuery('#foo').dialog({
    buttons:
    {
        translations['ok']: function() { alert('foo-ok'); },
        translations['cancel']: function() { alert('foo-cancel'); }
    }
});

// working
jQuery('#bar').dialog({
    buttons:
    {
        "Ok": function() { alert('bar-ok'); },
        "Cancel": function() { alert('bar-cancel'); }
    }
});

有什么方法可以让它与可变数组键一起工作吗?

您可以试试这个,可能会有帮助:

var buttonsOpts = {}
buttonsOpts[translations["ok"]] = function ....
buttonsOpts[translations["cancel"]] = function ....
jQuery('#bar').dialog({
   buttons : buttonsOpts
});

希望有帮助

我知道这已经是4年前的事了,但这是我遇到的一个问题的最好结果。这是我劳动的结果

jQuery('#bar').dialog({
   buttons : [
       {
        text: translations.ok,
        click: function(){}
       },
       {
        text: translations.cancel,
        click: function(){}
       },
   ]
});
只需在鼠标或键盘事件中调用函数,引用函数(不带括号),定义按钮或设置为空,设置标题,并设置要显示的文本

function confirmDialogue(fn, value, ok, cancel, title, text){
    if (typeof ok == "undefined" || ok == ""){ok = "Ok";}
    if (typeof cancel == "undefined" || cancel == ""){cancel = "Cancel";}
    var buttonsOpts = {};
    buttonsOpts[ok] = function() {fn(value);$( this ).dialog( "destroy" );}
    buttonsOpts[cancel] = function() {$( this ).dialog( "destroy" );}

    var NewDialog = $('<div id="dialogConfirm"><p>' + text + '</p></div>');
    NewDialog.dialog({
        title: title,
        dialogClass: "dialogue",
        modal: true,
        height: "auto",
        width: "auto",
        show: true,
        hide: true,
        close: function(){$(this).dialog('destroy');},
        buttons: buttonsOpts
    });
    return false;
}
功能确认对话框(fn、值、确定、取消、标题、文本){
如果(typeof ok==“未定义”| | ok==”){ok=“ok”}
如果(typeof cancel==“未定义”| | cancel==”){cancel=“cancel”}
var buttonopts={};
按钮选择[ok]=function(){fn(值);$(this.dialog(“destroy”);}
buttonsOpts[cancel]=function(){$(this).dialog(“destroy”);}
var NewDialog=$(''+text+'

'); NewDialog.dialog({ 标题:标题,, 对话课:“对话”, 莫代尔:是的, 高度:“自动”, 宽度:“自动”, 秀:没错, 隐藏:是的, 关闭:函数(){$(this).dialog('destroy');}, 按钮:按钮选择 }); 返回false; }
这种方法有效-我几天前也遇到了同样的问题-这就是解决方法。尝试了一个小时,但使用了另一种语法。。。我会再试一次;)翻译的
translatinos
拼写是故意的还是打字错误?