在我的xhtml页面中使用Jquery Dialog
框。由于有2个Jquery Dialog
框和外观&每个盒子的感觉与另一个盒子不同,我必须使用addClass
属性,这在this post中已经讨论过了。现在我必须覆盖许多类,如ui-dialog, ui-corner-all, ui-widget-header
等。所以,我继续使用addClass
添加类。代码如下,
$('.ui-widget-content').addClass('new-ui-widget-content');
$('.ui-widget').addClass('new-ui-widget');
$('.ui-dialog .ui-dialog-titlebar').addClass('new-ui-dialog new-ui-dialog-titlebar');
$('.ui-widget-header').addClass('new-ui-widget-header');
$('.ui-helper-clearfix').addClass('new-ui-helper-clearfix');
....
$j("#dialog").dialog({
dialogClass: 'new-ui-widget-content',
dialogClass: 'new-ui-widget',
dialogClass: 'new-ui-dialog new-ui-dialog-titlebar',
dialogClass: 'new-ui-widget-header',
dialogClass: 'new-ui-helper-clearfix',
....
但是,我注意到只有一个类被覆盖了。我的意思是说,虽然我已经覆盖了很多类,但只有new-ui-widget-content
被覆盖(放在第一位)。
我也试过以下方式。但它给出了语法错误。
$j("#dialog").dialog({
dialogClass: 'new-ui-widget-content','new-ui-widget',......
addClass
可以覆盖多个类吗?
如果是这样,怎么办?
答案 0 :(得分:0)
你真的应该从CSS覆盖不需要的样式,而不是通过JavaScript交换多个CSS类。您只需要第二个对话框的标识符。如果#dialog
是第一个,我猜第二个是#dialog2
的名字。
将第二个样式表文件添加到HTML页面或附加到原始jquery-ui-rev.css
。
您应该使用其他样式来反映相关的选择器,但前面加上#dialog2
,这会增加特异性并为名为#dialog2
的包装器中的任何此类设置特殊格式。
由于找不到jquery-ui-rev.css
,我会根据the jquery.ui.dialog.css
给你一个例子。
如果要覆盖原始选择器.ui-dialog
中的某些特定属性:
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
...您可以通过设置另一个选择器来完成此操作,同时只重新指定相应的属性:
#dialog2 .ui-dialog {
width: 500px;
}