所以我现在有一个带有两个按钮的jQuery对话框:保存和关闭。我使用下面的代码创建对话框:
$dialogDiv.dialog({
autoOpen: false,
modal: true,
width: 600,
resizable: false,
buttons: {
Cancel: function() {
// Cancel code here
},
'Save': function() {
// Save code here
}
},
close: function() {
// Close code here (incidentally, same as Cancel code)
}
});
但是,使用此代码时,这两个按钮的颜色相同。我希望我的“取消”按钮与“保存”按钮的颜色不同。有没有办法使用一些内置的jQuery选项来做到这一点?我没有从文档中得到太多帮助。
请注意,我正在创建的Cancel按钮是一个预定义类型,但“Save”是我自己定义的。不确定这是否会对这个问题产生任何影响。
任何帮助都将不胜感激。谢谢。
更新:的共识是有两条路可以走:
我选择了第二个选项,并使用了jQuery find()方法,因为我认为这比使用:first or : first -child b/c更合适。我想要更改的按钮不一定是标记中列出的第一个按钮。使用find,我可以只指定按钮的名称,并以这种方式添加CSS。我最终得到的代码如下:
$dialogDiv.dialog({
autoOpen: false,
modal: true,
width: 600,
resizable: false,
buttons: {
Cancel: function() {
// Cancel code here
},
'Save': function() {
// Save code here
}
},
open: function() {
$('.ui-dialog-buttonpane').find('button:contains("Cancel")').addClass('cancelButtonClass');
}
close: function() {
// Close code here (incidentally, same as Cancel code)
}
});
发布于 2011-03-28 17:35:49
我在my answer上重发了一个类似的问题,因为似乎没有人在这里给出它,而且它更干净、更整洁:
使用替代的buttons
属性语法:
$dialogDiv.dialog({
autoOpen: false,
modal: true,
width: 600,
resizable: false,
buttons: [
{
text: "Cancel",
"class": 'cancelButtonClass',
click: function() {
// Cancel code here
}
},
{
text: "Save",
"class": 'saveButtonClass',
click: function() {
// Save code here
}
}
],
close: function() {
// Close code here (incidentally, same as Cancel code)
}
});
发布于 2009-12-02 02:50:18
您可以使用open事件处理程序来应用其他样式:
open: function(event) {
$('.ui-dialog-buttonpane').find('button:contains("Cancel")').addClass('cancelButton');
}
发布于 2009-12-02 02:47:05
我认为有两种方法可以解决这个问题:
当我查看其中一个对话框的firebug源代码时,结果如下所示:
<div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix">
<button class="ui-state-default ui-corner-all ui-state-focus" type="button">Send</button>
<button class="ui-state-default ui-corner-all" type="button">Cancel</button>
</div>
因此,例如,我可以通过向.ui-state-focus添加一些样式来处理Send按钮(可能还有一些额外的选择器,以确保我覆盖了jquery的样式)。
顺便说一句,在这种情况下,我会选择第二种选择,以避免在焦点改变时出现问题。
https://stackoverflow.com/questions/1828010
复制相似问题