MDBootstrap 上的工具提示不会显示

Posted

技术标签:

【中文标题】MDBootstrap 上的工具提示不会显示【英文标题】:Tooltips on MDBootstrap will not show 【发布时间】:2021-10-30 22:15:41 【问题描述】:

我将 MDBootstrap 与 vanilla JS 一起使用并包含 JQuery。

我已经包含了 Popper.js,但在此之前我在控制台中没有任何错误,不知道它是否让事情变得更糟,但它在之前或之后都没有工作。

我的 CSS

<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" rel="stylesheet" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.9.0/mdb.min.css" rel="stylesheet" />
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css"
    integrity="sha512-aOG0c6nPNzGk+5zjwyJaoRUgCdOrfSDhmMID2u4+OIslr0GjpLKo7Xm0Ao3xmpM4T8AmIouRkqwj1nrdVsLKEQ=="
    crossorigin="anonymous" />

我的 javascripts

    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"
        integrity="sha512-uto9mlQzrs59VwILcLiRYeLKPPbS/bT71da/OEBYEwcdNUk8jYIy+D176RYoop1Da+f9mvkYrmj5MCLZWEtQuA=="
        crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.10.1/umd/popper.min.js"
        crossorigin="anonymous"></script>
    <script type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.9.0/mdb.min.js"></script>
    <script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>

我的html

<i data-mdb-toggle="tooltip" id="warningIcon"
    title="Warning"
    class="fa fa-exclamation-circle text-warning fa-lg">
</i>

我的 javascript

const warningIcon = document.getElementById('warningIcon')
const tooltip = new mdb.Tooltip(warningIcon, 
    title: 'generated warning message'
);
tooltip.show()

我在这里做错了什么?控制台中没有消息,也没有出现工具提示。

【问题讨论】:

【参考方案1】:

您不需要 popper.js。目前,您的 title 属性缺少结束 ",但由于您在 JS 中使用 title,因此我会将其全部删除。只需确保 HTML 结构正确,它应该可以按预期工作...

<i data-mdb-toggle="tooltip"
   id="warningIcon"
   class="fa fa-exclamation-circle text-warning fa-lg">
</i>

const warningIcon = document.getElementById('warningIcon')
const tooltip = new mdb.Tooltip(warningIcon, 
    title: 'generated warning message'
);
tooltip.show()

https://codeply.com/p/r4ZtEfjCMd

【讨论】:

我在调试过程中添加了它,因为我在某处读到工具提示如果不存在就会被禁用(尽管我怀疑它是否适用)。虽然缺少引号是剪切和粘贴到这篇文章中的拼写错误,对此感到抱歉。 我在 JSFiddle 中测试了我提供的代码,它可以工作。我将进一步调查我的真实代码,因为似乎有其他东西在干扰。【参考方案2】:

所以我最终想通了。怀疑数据表或其他元素,我尽可能在JSFiddle 中复制我的代码,但无法让它失败。

作为最后的手段,我尝试使用不同的选项初始化工具提示,并在使用 placement: 'auto' 后它终于显示出来了(尽管它有点破坏了我的小提琴)。

const tooltip = new mdb.Tooltip(warningIcon, 
    title: 'generated warning message',
    placement: 'auto'
);

【讨论】:

以上是关于MDBootstrap 上的工具提示不会显示的主要内容,如果未能解决你的问题,请参考以下文章

设置所有等高的卡片 (mdbootstrap)

MFC 工具提示仅在特殊场合出现

帮助查找 CMFCMenuBar 上的工具提示问题

mdbootstrap:隐藏的浮动按钮覆盖内容

交互式地图上的工具提示

移动对象后工具提示不会消失