利用Chrome自带debug程序解决Bootstrap下拉框JS不生效问题

今天想从Bootstrap中拷贝一段代码到自己的项目中,结果发现原封不动的官方代码,拷贝到自己本地就是不能用,记录下解决办法。

问题现象

官方的下拉框代码如下

<div class="dropdown">
  <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
    Dropdown
    <span class="caret"></span>
  </button>
  <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
    <li><a href="#">Action</a></li>
    <li><a href="#">Another action</a></li>
    <li><a href="#">Something else here</a></li>
    <li role="separator" class="divider"></li>
    <li><a href="#">Separated link</a></li>
  </ul>
</div>

将其拷贝到项目中如下

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
		<script src="js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
		<title>Bootstrap test</title>
	</head>
	<body>
		<div class="dropdown">
		  <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
		    Dropdown
		    <span class="caret"></span>
		  </button>
		  <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
		    <li><a href="#">Action</a></li>
		    <li><a href="#">Another action</a></li>
		    <li><a href="#">Something else here</a></li>
		    <li role="separator" class="divider"></li>
		    <li><a href="#">Separated link</a></li>
		  </ul>
		</div>
	</body>
</html>

注意这里我已经在<head>中引入了事先下载到本地的Bootstrap官方的css和js,但是没有效果,点击下拉框按钮根本就没有内容弹出来。

问题原因

于是用Chrome自带的调试器来检查下。

Event Listener Breakpoints下找到Sources,选择Mouse下面的click,这样只要页面中出发了鼠标点击事件就会触发断点,进而可以单步执行找到出问题的JS代码。

1-debug.png

我在官网上进行了上面的操作,结果发现程序进入了一段jQuery脚本,我恍然大悟(其实是Google了很久被大神提醒才意识到的),Bootstrap是基于jQuery的,单单导入Bootstrap的JS是不够的,还得导入jQuery的JS,而且jQuery必须在Bootstrap之前导入

解决办法

于是解决办法也很简单,修改下<head>

<head>
		<meta charset="utf-8" />
		<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
		<script src="./js/jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
		<script src="js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
		<title>Bootstrap test</title>
	</head>

之后成功实现官网的效果。

其实所有Bootstrap的JS效果都是基于jQuery的,所以官方的代码没达到效果可以首先看看有没有成功导入两个JS。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

Bootstrap提供了一个简单而强大的下拉框组件。你可以使用下面的代码来创建一个Bootstrap下拉框: ```html <div class="dropdown"> <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 选择 </button> <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> <a class="dropdown-item" href="#">选项1</a> <a class="dropdown-item" href="#">选项2</a> <a class="dropdown-item" href="#">选项3</a> </div> </div> ``` 在这个例子中,我们首先创建一个包含下拉框的`<div>`容器,并为它添加`dropdown`类。接下来,我们创建一个按钮元素,通过添加`btn`和`btn-secondary`类来定义按钮的样式。我们也添加了`dropdown-toggle`类来指示这个按钮是一个下拉按钮。 按钮中的文字是“选择”,你可以根据需要修改它。在按钮元素的属性中,我们添加了`data-toggle="dropdown"`来指示这个按钮要触发下拉行为。 然后,我们创建了一个`<div>`容器作为下拉菜单,并添加了`dropdown-menu`类来定义它的样式。在这个容器里,我们添加了多个`<a>`元素作为下拉选项。你可以根据需要修改选项的文本和链接。 最后,我们使用`aria-labelledby`属性将下拉菜单与按钮相关联,这样屏幕阅读器用户可以正确地访问它。 请确保在使用之前引入Bootstrap的CSS和JavaScript文件。希望这个例子能帮到你!如果还有其他问题,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值