Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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
使用var作为属性id的javascript/jQuery_Javascript_Jquery_Jquery Ui Dialog - Fatal编程技术网

使用var作为属性id的javascript/jQuery

使用var作为属性id的javascript/jQuery,javascript,jquery,jquery-ui-dialog,Javascript,Jquery,Jquery Ui Dialog,我想在我的代码中使用翻译,它们来自PHP/MySql,并转换为javascript数组: var translate = <?= json_encode($Object->translate);?>; var translate=; 翻译可用Javascript(已测试) 现在,我想在Javascript代码中使用它们,例如Jquery UI对话框: $("#logoff").click(function(){ var action = "logoff";

我想在我的代码中使用翻译,它们来自PHP/MySql,并转换为javascript数组:

var translate = <?= json_encode($Object->translate);?>;
var translate=;
翻译可用Javascript(已测试)

现在,我想在Javascript代码中使用它们,例如Jquery UI对话框:

$("#logoff").click(function(){  
    var action = "logoff"; 
    var btnLogoff = translate["dialog/buttonLogoff"]; // this gives the translation from the array
    var btnCancel = translate["dialog/buttonCancel"]; // this gives the translation from the array
    $("#dialog").dialog(
        {
            title: translate["dialog/titleLogoff"],
            modal: true,
            resizable: false,
            buttons: {
                btnLogoff : function() {
                        var loadUrl = "includes/_ajax/actions.ajax.php";
                        $.post(loadUrl,{action:action}, function(data) {
                            if(data)
                                location.reload();
                        });
                        $( this ).dialog( "close" );
                },
                btnCancel: function() {
                        $( this ).dialog( "close" );
                }
            }
        }
    );
    $("#dialog").html("<span class='ui-icon ui-icon-alert' style='float: left; margin: 0 7px 20px 0;'></span>" + translate["dialog/textLogoff"]);    
});  
$(“#注销”)。单击(函数(){
var action=“注销”;
var btnLogoff=translate[“dialog/buttonLogoff”];//这给出了数组的转换
var btnCancel=translate[“dialog/buttonCancel”];//这给出了数组的转换
$(“#对话框”)。对话框(
{
标题:翻译[“对话/标题登录”],
莫代尔:是的,
可调整大小:false,
按钮:{
btnLogoff:function(){
var loadUrl=“includes/_ajax/actions.ajax.php”;
$.post(loadUrl,{action:action},函数(数据){
如果(数据)
location.reload();
});
$(此).dialog(“关闭”);
},
btnCancel:函数(){
$(此).dialog(“关闭”);
}
}
}
);
$(“#dialog”).html(“+translate[“dialog/textLogoff”);
});  
问题在于属性btnLogoff没有显示翻译的文本,而是显示它自己(“btnLogoff”)


在最后一节中,translate[“dialog/textLogoff”]按原意进行翻译。我显然做错了什么事。我可以使用变量作为属性id吗?如何使用?

我认为您没有充分使用jQuery.dialog API。看

尝试使用按钮配置的“文本”属性:

$("#dialog").dialog(
    {
        title: translate["dialog/titleLogoff"],
        modal: true,
        resizable: false,
        buttons: [
            {
                text : btnLogoff,
                click : function() {
                    var loadUrl = "includes/_ajax/actions.ajax.php";
                    $.post(loadUrl,{action:action}, function(data) {
                        if(data)
                            location.reload();
                    });
                    $( this ).dialog( "close" );
                }
            }
            ,
            {
                text : btnCancel,
                click: function() {
                    $( this ).dialog( "close" );
                }
            }
        ]
    }
);

你能给我们看一堆相关的
translate
array吗?除了缺少的那一个]完美之外,它完成了任务!我最初在PHP页面中有这段代码,并使用javascript中的PHP内联调用翻译。现在,想要将javascript移动到一个单独的文件中,我遇到了这个问题。再也不要访问jQueryUI对话框文档了。谢谢