只显示简单的工具提示,没有任何样式

问题描述

我不知道为什么当我将鼠标悬停在我的 a 上时,只显示一个带有文本的简单工具提示。引导程序文档中没有显示样式。 (我正在使用 js 创建 a

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <Meta charset="UTF-8">
    <Meta http-equiv="X-UA-Compatible" content="IE=edge">
    <Meta name="viewport" content="width=device-width,initial-scale=1.0">

    <!--BOOTSTRAP-->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" 
    rel="stylesheet"
    integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.4.0/font/bootstrap-icons.css">

    <!--GOOGLE FONTS-->
    <link rel="preconnect" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css2?family=Ranchers&display=swap" rel="stylesheet">

    <!--CUSTOM STYLESHEET-->
    <link rel="stylesheet" href="../CSS/homePage.css">
    <title>App</title>
</head>

<body>

    <div class = "btndiv">
        <!--DIV FOR STORING ANCHOR TAG-->
    </div>

    <!--JQUERY-->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

    <!--BOOTSTRAP-->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0"
        crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.6.0/dist/umd/popper.min.js"
        integrity="sha384-KsvD1yqQ1/1+IA7gi3P0tyJcT3vR+NdBTt13hSJ2lnve8agRGXTTyNaBYmCR/Nwi"
        crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js"
        integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPncuaFLuTMS2G72MMONqmOymq585AcH49TLBQObG"
        crossorigin="anonymous"></script>
    
    <script>
        $(document).ready(function () {
            $('[data-toggle="tooltip"]').tooltip({ 'placement': 'bottom' });
        });
    </script>

    <script src="../JAVASCRIPT/homePage.js"></script>

我的 JS -

const btn1 = document.createElement('a');
btn1.innerHTML = 'DELETE';
btn1.setAttribute('data-bs-toggle','tooltip');
btn1.setAttribute('data-bs-placement','bottom');
btn1.setAttribute('title','Delete');
btn1.href = '#';
btndiv.append(btn1);

解决方法

你的代码块有很多错误。

  1. Bootstrap JS 包含两次。第一次作为捆绑,第二次作为独立。选择其中之一。请参阅:https://getbootstrap.com/docs/5.0/getting-started/introduction/#js

  2. $('[data-toggle="tooltip"]').tooltip({ 'placement': 'bottom' }); 是 Bootstrap 4 方法。这不是 Bootstrap 5 方法 - 请参阅:https://getbootstrap.com/docs/5.0/components/tooltips/#example-enable-tooltips-everywhere

  3. 我假设你的 JS 是在工具提示初始化之后调用的,所以它在 DOM 中还没有 btn1 组件。所以它没有被初始化。为此,您需要在组件已经在 DOM 中之后初始化工具提示。

  4. btndiv.append(btn1); .. btndiv 未定义。

最好给你一个工作示例(我假设你想使用 jQuery):https://jsfiddle.net/vinorodrigues/rLjzys8k/2/

HTML:

    <div class = "btndiv">
        <!--DIV FOR STORING ANCHOR TAG-->
    </div>

JS:

const btn1 = document.createElement('a');
btn1.innerHTML = 'DELETE';
btn1.setAttribute('data-bs-toggle','tooltip');
btn1.setAttribute('data-bs-placement','bottom');
btn1.setAttribute('title','Delete');
btn1.href = '#';

const btndiv = $('.btndiv');
btndiv.append(btn1);

var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
  return new bootstrap.Tooltip(tooltipTriggerEl)
})