javascript - 网站上标签的 html 有问题
问题描述
我是一个初学者,所以感谢这个耐心。我正在尝试在我的网站上嵌入一个非常简单的标签结构。我不确定为什么它不起作用。这是下面的代码。
我猜这与 JS 有关,但同样,我只是对此很陌生。任何帮助将不胜感激!谢谢!
(为此,我使用了 CodePen 上的代码)
<html lang="en" >
<head>
<script>$(function () {
var activeIndex = $('.active-tab').index(),
$contentlis = $('.tabs-content li'),
$tabslis = $('.tabs li');
// Show content of active tab on loads
$contentlis.eq(activeIndex).show();
$('.tabs').on('click', 'li', function (e) {
var $current = $(e.currentTarget),
index = $current.index();
$tabslis.removeClass('active-tab');
$current.addClass('active-tab');
$contentlis.hide().eq(index).show();
});
});</script>
<meta charset="UTF-8">
<title>CodePen - Simple tabs</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
<link rel="stylesheet" href="./style.css">
<style>.tabs {
margin: 20px;
padding: 0;
list-style: none;
position: relative;
border-bottom: 1px solid #ccc;
}
.tabs .active-tab {
border-top: 1px solid #ccc;
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
border-bottom: none;
position: relative;
color: black;
}
.tabs .active-tab:after {
width: 100%;
height: 2px;
position: absolute;
content: "";
bottom: -0.1em;
left: 0;
background: white;
}
.tabs li {
display: inline-block;
cursor: pointer;
color: #3a5ea7;
padding: 5px 10px;
}
.tabs li:first-child {
margin-left: 10px;
}
.tabs-content {
margin: 20px;
padding: 0;
list-style: none;
}
.tabs-content li {
display: none;
}</style>
</head>
<body>
<!-- partial:index.partial.html -->
<ul class="tabs">
<li class="active-tab">First tab</li>
<li>Second tab</li>
<li>Third tab</li>
</ul>
<ul class="tabs-content">
<li>Content of first tab</li>
<li>Content of second tab</li>
<li>Content of third tab</li>
</ul>
<!-- partial -->
</body>
</html>
解决方案
那里发生了很多事情。
乍一看,您没有使用 JavaScript,而是使用了一个名为 JQuery 的库,因此您需要“导入”它,否则该代码将无法工作。
它必须放在您的 JQuery 代码之前。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
我建议将您编写的代码放在页面底部,在结束正文标记之前
---> HERE
</body>
改进:
将您的代码分成“模块”或更小的块。
- 样式标签内的所有内容,将其剪切并粘贴到一个新文件中,例如 style.css。
- 脚本标签内的所有内容,剪切并粘贴到一个新文件中,例如 app.js。
- 之后导入它们,JavaScript 文件,在结束 body 标记之前,如前所述,以及其他样式旁边的 css 导入。
所以,你最终会得到这样的东西:
页面顶部,head 标签内
...
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
<link rel="stylesheet" href="./style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
页面底部,关闭 body 标签之前
...
<script src="./app.js"></script>
</body>
推荐阅读
- javascript - React 组件无法识别对象属性以用作从 Socket.IO 接收的值
- google-analytics - 如何将 200 个页面批量添加到 Google Analytics 细分
- reactjs - 如何在 Redux Reducer 的对象数组中将状态更改为不同的对象
- mysql - 如何仅将 Mysql 数据库结构从开发服务器复制到生产服务器(生产服务器有数据,而开发服务器没有)
- performance - Symfony4:禁用您很少使用的服务
- javascript - api 节点 .js(通过 api 将数据发布到 mailchimp 服务器)
- java - 在 localhost 中打开 eureka 页面时出现 404 错误
- php - 如何通过 php 从 mysql 数据库中检索特定数据?
- python - 如何将整列转换为日期格式?
- ruby-on-rails - 未定义的方法“付款”#
如果我尝试通过这个从 Razorpray 获取订单
order = Razorpay::Order.fetch(@razorpay_order_id) payements = order.payments
我收到错误,因为 #<Razorpay::Collection: 0xabc4567890123> 的未定义方