你将不得不稍微捏造一下。
使用此标记:
<div id="autoDialog">howdy</div>
您可以创建一组颜色和类名,然后应用它们:
我稍微更改了您的程序,并添加了一些警报,以便您看到已添加类:(这是针对类属性的警报测试的 jQuery 1.9 版本)-基本上我创建了一个动态样式元素并应用它。我在样式中添加了足以覆盖现有样式的内容 - 确保它是一个 hack 但应该可以工作。实践中的例子:http: //jsfiddle.net/Q4qT3/1/
function setAutoDialog() {
var testArray = ["T1", "T2"];
var myClass = [{
myclass: "primary",
color: "#558899"
}, {
myclass: "secondary",
color: "pink"
}];
var testFunction = function (e) {
alert("worked2");
alert($(e.target).prop("class"));
};
var myButtons = [];
var i = 0;
for (i = 0; i < testArray.length; i++) {
myButtons[i] = {
text: testArray[i],
click: testFunction,
myclass: myClass[i].myclass
};
}
var myStyle = "<style type='text/css'> ";
for (i = 0; i < testArray.length; i++) {
myStyle += " .ui-dialog-buttonset ." ;
myStyle += myClass[i].myclass;
myStyle += " span.ui-button-text {background:";
myStyle += myClass[i].color + ";}";
}
myStyle += "< /style > ";
$(myStyle).appendTo("head");
$('#autoDialog').dialog({
autoOpen: false,
width: 'auto',
buttons: myButtons,
create: function (event, ui) {
// Get the dialog
var dialog = $(event.target).parents(".ui-dialog.ui-widget");
var buttons = dialog.find(".ui-dialog-buttonpane").find("button");
for (var i = 0; i < buttons.length; i++) {
$(buttons[i]).addClass($(buttons[i]).attr("myclass"));
}
}
});
$('#autoDialog').dialog("open");
}
setAutoDialog();