我确实可以使用Close
选项轻松将closeText
按钮文本设置为变量
$("#dialog").dialog({
autoOpen: false,
modal: true,
closeText: btnCancel, // <-----
overlay: {
backgroundColor: '#000',
opacity: 0.5
},
buttons: {
Close: function() {
$(this).dialog('close');
}
}
});
但自定义名称怎么样?
这不起作用:(
var btnResetMapping = 'Reset Mapping';
$("#dialog").dialog({
autoOpen: false,
modal: true,
closeText: btnCancel,
overlay: {
backgroundColor: '#000',
opacity: 0.5
},
buttons: {
Close: function() {
$(this).dialog('close');
},
btnResetMapping: function() { // <-----
// logic here
},
}
});
这可以看作是一个奇怪的问题,但我的变量在代码中是:
var btnResetMapping = '<%= Resources.PARbuttons.btnResetMapping %>';
从全局资源文件中正确加载,并使用正确的应用本地化句子。
使用时可以正常工作:
$("#dialog").dialog({
autoOpen: false,
modal: true,
closeText: btnCancel,
overlay: {
backgroundColor: '#000',
opacity: 0.5
},
buttons: {
Close: function() {
$(this).dialog('close');
},
'<%= Resources.PARbuttons.btnResetMapping %>': function() { // <-----
// logic here
},
}
});
但我正在重构这个将javascript文件放在它自己的位置(单独的文件),我想,不仅这样做(从Javascript单独的HTML - 这是一个始终从加载的业务Web应用程序INTRANET,从不使用互联网btw)但要了解它。
谢谢。
答案 0 :(得分:4)
您可以使用括号表示法,如下所示:
var myButtons = { Close: function() { $(this).dialog('close'); } };
myButtons[btnResetMapping] = function() { ...logic here... };
$("#dialog").dialog({
autoOpen: false,
modal: true,
closeText: btnCancel,
overlay: {
backgroundColor: '#000',
opacity: 0.5
},
buttons: myButtons
});
在此代码运行之前确保btnResetMapping
已定义为,并且您已全部设置完毕:)