我需要为JQuery对话框的按钮文本提供本地化,但是JQuery对话框通常使用按钮文本的键:
$(DialogDiv).dialog({
bgiframe: true,
resizable: false,
buttons: { Save : saveCallback, Cancel : cancelCallback}
});有没有一种方法可以单独指定文本而不使用键作为文本值?目前我正在使用这个,但是我不喜欢使用本地化的值作为键:
var buttonCallbacks = {};
buttonCallbacks[com.i18n.getText("Save")] = function() {};
buttonCallbacks[com.i18n.getText("Cancel")] = function() {};
$(DialogDiv).dialog({
bgiframe: true,
resizable: false,
buttons: buttonCallbacks
});谢谢。
发布于 2011-03-11 04:56:49
如果您查看对话框的button options,您会注意到列出的第二种格式接受一个对象数组:
$(DialogDiv).dialog({
bgiframe: true,
resizable: false,
buttons: [ {
text: com.i18n.getText("Save"),
click: saveCallback
}, {
text: com.i18n.getText("Cancel"),
click: cancelCallback
}
]
});发布于 2011-03-11 03:29:50
在源代码(1.8)上刚刚达到顶峰:
var button = $('<button type="button"></button>')
.text(name) // name is object key from each
.click(function() { fn.apply(self.element[0], arguments); })
.appendTo(uiDialogButtonPane);所以看起来不像。
现在你可以添加一个在show之后修改按钮的回调函数。这看起来很不靠谱--我建议你现在这样做。
发布于 2011-03-11 04:41:51
初始化完成后,我可以告诉您如何事后进行更改,但是在构造函数中进行更改将需要对jQuery UI库进行根本更改,当然,这是完全可行的,因为它是开放源代码的。目前未向您提供该功能。
相反,我建议在对话框初始化后执行您想要的更改:
$('.myDialogSelector').parent()
.find('span.ui-button-text:contains("OriginalNameFromKey")')
.html("New Button Text");请参阅正常工作的fiddle here。
我可以问一下为什么构造器的格式对你很重要吗?我很难想象这个用例的细节。构建buttons映射的方式似乎很好。
https://stackoverflow.com/questions/5264699
复制相似问题