问题是我有这段代码(Jquery UI):
$("#dialog-confirm").dialog({
resizable: false,
modal: true,
buttons: {
"Remove": function() {
$(this).dialog("close");
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
现在我必须通过给每个按钮提供单词翻译来使其国际化。我对变量STR_REMOVE和STR_CANCEL进行了翻译,但是如果我做了类似的事情
buttons: {
STR_REMOVE: function() {
$(this).dialog("close");
},
STR_CANCEL: function() {
$(this).dialog("close");
}
}
按钮(属性)的值为“STR_REMOVE”和“STR_CANCEL”,而不是其内容。所以,问题是,我该怎么办?
答案 0 :(得分:3)
试试这个。
var STR_REMOVE = "my delete", STR_CANCEL = "my cancel";
$("#dialog-confirm").dialog({
resizable: false,
modal: true,
buttons: [{
text: STR_REMOVE,
click: function () {
$(this).dialog("close");
}
},
{
text: STR_CANCEL,
click: function () {
$(this).dialog("close");
}
}]
});
查看jquery ui doc:http://jqueryui.com/demos/dialog/#option-buttons
答案 1 :(得分:1)
var buttons = {};
buttons[STR_REMOVE] = function() {
$(this).dialog("close");
};
buttons[STR_CANCEL] = function() {
$(this).dialog("close");
};
$("#dialog-confirm").dialog({
resizable: false,
modal: true,
buttons: buttons
});
答案 2 :(得分:1)
你不能内联。您必须先声明对象,然后使用square bracket member operator设置属性:
var buttons = {};
buttons[STR_REMOVE] = function() {
$(this).dialog("close");
};
buttons[STR_CANCEL] = function() {
$(this).dialog("close");
};
$("#dialog-confirm").dialog({
resizable: false,
modal: true,
buttons: buttons
});
答案 3 :(得分:0)
试试这个,未经测试:
$("#dialog-confirm").dialog({
resizable: false,
modal: true,
buttons: {
"Remove": function() {
$(this).html(STR_REMOVE);
$(this).dialog("close");
},
"Cancel": function() {
$(this).html(STR_REMOVE);
$(this).dialog("close");
}
}
});