问题描述
我不知道为什么当我将鼠标悬停在我的 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);
解决方法
你的代码块有很多错误。
-
Bootstrap JS 包含两次。第一次作为捆绑,第二次作为独立。选择其中之一。请参阅:https://getbootstrap.com/docs/5.0/getting-started/introduction/#js
-
$('[data-toggle="tooltip"]').tooltip({ 'placement': 'bottom' });
是 Bootstrap 4 方法。这不是 Bootstrap 5 方法 - 请参阅:https://getbootstrap.com/docs/5.0/components/tooltips/#example-enable-tooltips-everywhere -
我假设你的 JS 是在工具提示初始化之后调用的,所以它在 DOM 中还没有
btn1
组件。所以它没有被初始化。为此,您需要在组件已经在 DOM 中之后初始化工具提示。 -
行
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)
})