如何打开一个在列表中的不同模态
层叠样式表是一种样式表语言,与HTML和JavaScript一起用于构建网络应用。CSS框架提供了一个库,使网页设计更容易、更标准化。其中一个CSS框架是Bootstrap 4。Bootstrap 4是最常用的CSS框架,因为它很简单,内置的库提供了设计交互式用户界面所需的大量组件和工具。
列表和模版是Bootstrap 4中广泛的预定义组件之一。模态是基于HTML、CSS和JavaScript的组合。模态定位在文档中触发它的父元素上,可以通过点击模态中的关闭选项来移除。另外,点击模态背景会自动关闭模态。Bootstrap 4一次只支持一个模态。这篇文章主要讨论如何在一个列表中打开一个不同的模态。下面的例子演示了如何从一个列表项中打开一个模态。
第一种方法:第一种方法是处理包含完全不同内容的模态。在这种情况下,模态必须被单独编码。
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href=
"https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
integrity=
"sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
crossorigin="anonymous">
<script src=
"https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity=
"sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"
crossorigin="anonymous">
</script>
<script src=
"https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
integrity=
"sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
crossorigin="anonymous">
</script>
<script src=
"https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
integrity=
"sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
crossorigin="anonymous">
</script>
</head>
<body>
<!-- Button trigger modal -->
<ul>
<li data-toggle="modal"
data-target="#exampleModal1"
data-whatever="item 1">
<a href="#">Item 1</a>
</li>
<li data-toggle="modal"
data-target="#exampleModal2"
data-whatever="item 2">
<a href="#">Item 2</a>
</li>
<li data-toggle="modal"
data-target="#exampleModal3"
data-whatever="item 3">
<a href="#">Item 3</a>
</li>
</ul>
<!-- Modal -->
<div class="modal fade" id="exampleModal1"
tabindex="-1" role="dialog"
aria-labelledby="exampleModalLabel"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"
id="exampleModalLabel">
Modal title
</h5>
<button type="button" class="close"
data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>
Python is a high-level, general-purpose
and a very popular programming language..
</p>
</div>
<div class="modal-footer">
<button type="button" class=
"btn btn-secondary" data-dismiss="modal">
Close
</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="exampleModal2"
tabindex="-1" role="dialog"
aria-labelledby="exampleModalLabel"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"
id="exampleModalLabel">
Modal title</h5>
<button type="button" class="close"
data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>
This specially designed Python
tutorial will help you learn
Python Programming Language.
</p>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-secondary"
data-dismiss="modal">
Close
</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="exampleModal3"
tabindex="-1" role="dialog"
aria-labelledby="exampleModalLabel"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"
id="exampleModalLabel">
Modal title
</h5>
<button type="button" class="close"
data-dismiss="modal"
aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>
Learning applications, along with
all cutting edge technology in
Software Industry.
</p>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-secondary"
data-dismiss="modal">
Close
</button>
</div>
</div>
</div>
</div>
</body>
</html>
输出
- 点击 “item1 “后显示以下输出结果
- 点击 “item2 “后,会显示以下输出结果
- 点击 “item3 “后显示以下输出结果
第二种方法:第二种方法是处理内容几乎相似但差别很小的模态。编写一个JavaScript函数,根据需求改变文本。当列表项的显示实例方法被调用时,show.bs.modal事件立即发生。被点击的元素可以作为该事件的relatedTarget属性。目标元素被存储在’li’变量中。接下来,目标元素的数据–不管是什么值,都存储在接收者变量中。当前的模态事件被存储在模态变量中。这个模态变量调用find()方法来寻找模态 “title “和模态 “body”,并将其替换为所需文本。
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href=
"https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
integrity=
"sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"
integrity=
"sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"
crossorigin="anonymous">
</script>
<script src=
"https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
integrity=
"sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
crossorigin="anonymous">
</script>
<script src=
"https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
integrity=
"sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
crossorigin="anonymous">
</script>
</head>
<body>
<!-- Button trigger modal -->
<ul>
<li data-toggle="modal"
data-target="#exampleModal"
data-whatever="item 1">
<a href="#">Item 1</a>
</li>
<li data-toggle="modal"
data-target="#exampleModal"
data-whatever="item 2">
<a href="#">Item 2</a>
</li>
<li data-toggle="modal"
data-target="#exampleModal"
data-whatever="item 3">
<a href="#">Item 3</a>
</li>
</ul>
<!-- Modal -->
<div class="modal fade" id="exampleModal"
tabindex="-1" role="dialog"
aria-labelledby="exampleModalLabel"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"
id="exampleModalLabel">
Modal title
</h5>
<button type="button" class="close"
data-dismiss="modal"
aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p> hi</p>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-secondary"
data-dismiss="modal">
Close
</button>
</div>
</div>
</div>
</div>
<script>
('#exampleModal').on('show.bs.modal',
function (event) {
// Button that triggered the modal
var li =(event.relatedTarget)
// Extract info from data attributes
var recipient = li.data('whatever')
// Updating the modal content using
// jQuery query selectors
var modal = $(this)
modal.find('.modal-title')
.text('New message to ' + recipient)
modal.find('.modal-body p')
.text('Welcome to ' + recipient)
})
</script>
</body>
</html>
输出