如何在 jquery ui 中更改对话框标题颜色?

Posted

技术标签:

【中文标题】如何在 jquery ui 中更改对话框标题颜色?【英文标题】:How can I change dialog title color in jquery ui? 【发布时间】:2014-02-15 17:07:16 【问题描述】:

我有这样的事情:

$div = $('<div id="error" title="Error">');
$div.append('<p>Hi</p>');

$div.dialog(
    modal: true,
    maxHeight:500,
);

我可以像这样改变对话框标题的背景颜色吗?:

 $div.dialog(
        modal: true,
        maxHeight:500,
    ).find(".ui-dialog-titlebar").css("background-color","red");

【问题讨论】:

怀疑,会有一种样式会覆盖您设置的任何样式。我的建议是找到它的样式,创建另一个名称不同的样式,然后在您的 jquery 中替换它。 Themeroller?: jqueryui.com/themeroller @Gjohn - 内联样式会覆盖 css 样式,因此此更改应该有效。 milandjukic88 - 查看您设计的代码是否有效的最简单方法是尝试它。 :-P @Gjohn 我在页面上打开了多个对话框。我只想改变一个。以你的方式,能做到吗? @ScottMermelstein 我正在尝试,但它不起作用:D 【参考方案1】:

使用prev() 而不是find(),因为该元素不在$div 内:

$div.dialog(
    modal: true,
    maxHeight:500,
).prev(".ui-dialog-titlebar").css("background","red");

我还使用background 覆盖所有其他元素,例如background-image

查看http://jsfiddle.net/Ad7nF/

【讨论】:

嘿..如何在上面的例子中添加背景颜色和背景边框? @RadhikaKulkarni 尝试使用 .addClass() 代替 .css() 方法添加类【参考方案2】:

另一种方法是:

定义你的样式类 - myTitleClass

定义css为

  . myTitleClass .ui-dialog-titlebar 
          background:red;
    

并将自定义类添加到对话框初始化函数中:

     $( "#dialog" ).dialog(
        autoOpen: false,
        dialogClass: 'myTitleClass'
     );

JSFiddle -(但带有另一个示例代码)

http://jsfiddle.net/khVYj/3/

【讨论】:

我认为这是最好的答案,因为它允许具有不同 css 的多个对话框,而无需即时更改它。 这种方法允许更改每一个对话框设计,同时保留 CSS 文件的复杂性。正如 Zak 所提到的,您不仅可以通过更改类名来拥有多种样式,而且您还可以通过更改源 CSS 文件来提供完全不同的设计和颜色选择。这个答案提供了迄今为止我发现的最佳方法。【参考方案3】:

最简单的方法是这样的:-

.ui-dialog-titlebar 
      background:red;

【讨论】:

它有效,但它会强制您在页面中的每个对话框中使用相同的背景。我认为@user1428716 的答案是最好的方法。

以上是关于如何在 jquery ui 中更改对话框标题颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jQuery UI 对话框中更新“标题”? [复制]

在将按钮添加到 jQuery UI 对话框时,如何防止有人更改或避免我的 JavaScript 逻辑?

JQuery UI 选项卡背景颜色

在jquery的ui-tabs中查找活动选项卡并更改颜色[重复]

如何创建我的 jquery ui 自定义对话框?

如何更改 jQuery UI datepicker 的主题?