我可以动态更改引导弹出窗口标题样式吗

Posted

技术标签:

【中文标题】我可以动态更改引导弹出窗口标题样式吗【英文标题】:Can I change the bootstrap popover title style dynamically 【发布时间】:2020-03-07 12:17:49 【问题描述】:

这似乎是多次询问的问题,但我无法在我的情况下使用它。

我有一个表格,其中包含带有背景颜色集的 td 元素。

当我设置弹出框(具有标题和内容图像)时,我想将标题设置为与 td 元素具有相同的背景颜色。

我正在使用 jquery 和 bootstratp 3.3.7 并且到目前为止有以下代码(工作正常)

...

$('td').hover(function()
                // mousein
                $(this).popover(
                        animation: true,
                        container: 'body',
                        content : $(this).attr("popover-content"),
                        title : $(this).attr("popover-title"),
                        placement : "right",
                        html : "true",
                        trigger : "manual",
                );
                $(".popover-title").css('background-color',$(this).css('background-colo
r')+' !important');
                $(this).popover('show');
        ,function()
                // mouseout
                $(this).popover('hide');
        );

...

不起作用的是对类 popover-title 上的 css 的更改。

我一定遗漏了一些重要的东西,希望能得到一些帮助吗?

谢谢,保罗

【问题讨论】:

【参考方案1】:

根据jQuery docs:

注意: .css() 忽略 !important 声明。因此,$( "p" ).css( "color", "red !important" ) 语句不会将页面中所有段落的颜色变为红色。强烈建议改用类;否则使用 jQuery 插件。

因此,您可以做的是应用许多类之一,这些类在您的 CSS 中使用!important 单独设置样式。但是,您可能根本不需要!important。您所需要的只是覆盖已应用样式的特殊性。

【讨论】:

好的,明白了。如果我按照建议删除它仍然没有变化。我没有意识到 jquery 忽略了它,但它是基于对类似问题的广泛研究的众多尝试之一。 如果没有 runnable minimal reproducible example 我无法帮助您,因为我不知道我必须覆盖什么,并且我无法测试任何潜在的解决方案。在问题 sn-p 或您选择的 sn-p 网站上重现您的问题,我会看看。【参考方案2】:

对于任何被这个特定问题绊倒的人,这就是我解决它的方法。

1) 通过添加链接到弹出显示事件的函数(可在 SO 中的相关文章中找到!)例如

<!-- bootstrap tooltip plugin -->
$('td').hover(function()
        // mousein
        $(this).popover(
                animation: true,
                container: 'body',
                content : $(this).attr("popover-content"),
                title : $(this).attr("popover-title"),
                placement : "right",
                html : "true",
                trigger : "manual",
        ).on("show.bs.popover", function()
                if ($(this).attr("popover-content")) 
                        $(this).data("bs.popover").tip().css('background-color',$(this).css('background-color'));
                 else 
                        $(this).data("bs.popover").tip().css('background-color','#107a9d');
                
        );
        $(this).popover('show');
,function()
        // mouseout
        $(this).popover('hide');
);
    通过使背景颜色“继承”(大概)是tip() css。

【讨论】:

以上是关于我可以动态更改引导弹出窗口标题样式吗的主要内容,如果未能解决你的问题,请参考以下文章

在表格中悬停几次后,引导弹出窗口停止

引导弹出窗口以在 jQuery 数据表中动态创建锚点

我可以在引导弹出窗口中显示 Twitter 提要吗?

引导弹出窗口未显示在所有元素之上

来自 Laravel 循环的引导弹出窗口

引导弹出窗口中的 Django 登录表单