javascript / jQuery使用var作为属性id

时间:2013-01-13 10:11:13

标签: javascript jquery jquery-ui-dialog

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

var translate = <?= json_encode($Object->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"]);    
});  

问题是数据属性btnLogoff没有显示翻译文本,而是显示自己(&#34; btnLogoff&#34;)。

在上一节中,翻译[&#34; dialog / textLogoff&#34;]的翻译就像它的意思一样。我显然做错了什么。我可以将var用作属性ID吗?怎么样?

1 个答案:

答案 0 :(得分:1)

我认为你没有完全使用jQuery.dialog API。见http://api.jqueryui.com/dialog/#option-buttons

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

$("#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" );
                }
            }
        ]
    }
);