jquery Tab 选项卡通用函数
需积分: 0 98 浏览量
更新于2020-10-29
收藏 27KB PDF 举报
### jQuery Tab 选项卡通用函数知识点解析
#### 一、jQuery Tab 选项卡概述
在网页设计中,选项卡(Tabs)是一种常见的交互组件,它可以让用户通过点击不同的标签来切换显示不同的内容区域,以此来优化用户体验并节省页面空间。jQuery 是一种广泛使用的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画以及 Ajax 交互等操作。本文将详细介绍一个基于 jQuery 的选项卡插件实现方法,并对其核心功能进行解析。
#### 二、关键概念与技术背景
##### 1. jQuery 介绍
- **定义**:jQuery 是一款快速、简洁的 JavaScript 库。
- **优点**:简化了 HTML 文档遍历、事件处理、动画以及 Ajax 交互等操作。
- **兼容性**:支持各种主流浏览器,包括 IE6.0+、Firefox、Safari、Google Chrome 以及 Opera 等。
##### 2. 类选择器
- **定义**:类选择器(Class Selector)是 CSS 中的一种选择器,用于选取具有指定类名的元素。
- **语法**:`$( ".classname" )`
- **特点**:尽管使用类选择器的效率较低,但它可以被多次重复使用。
##### 3. 事件绑定
- **定义**:事件绑定是指将一个或多个事件处理程序附加到特定的 DOM 元素上。
- **jQuery 方法**:`on()`, `click()`, `mouseover()` 等。
- **示例**:`$( "#element" ).click(function() { /* ... */ });`
#### 三、jQuery Tab 选项卡核心代码分析
##### 1. 函数 `cur(ele)`
```javascript
function cur(ele) {
$(ele).addClass("cur").siblings().removeClass("cur");
}
```
- **作用**:为传入的元素添加样式类 `cur`,同时移除该元素兄弟节点上的 `cur` 类。
- **应用场景**:通常用于激活当前选项卡并使其高亮显示,同时取消其他选项卡的高亮状态。
##### 2. 函数 `tab(id_tab, tag_tab, id_con, tag_con, act)`
```javascript
function tab(id_tab, tag_tab, id_con, tag_con, act) {
// 初始化第一个选项卡及其对应的内容区域
$(id_tab).find(tag_tab).eq(0).addClass("cur");
$(id_con).find(tag_con).eq(0).show().siblings(tag_con).hide();
if (!act) { act = "click"; }
if (act == "click") {
$(id_tab).find(tag_tab).each(function (i) {
$(this).click(function () {
cur(this);
$(id_con).find(tag_con).eq(i).show().siblings(tag_con).hide();
});
});
}
if (act == "mouseover") {
$(id_tab).find(tag_tab).each(function (i) {
$(this).mouseover(function () {
cur(this);
$(id_con).find(tag_con).eq(i).show().siblings(tag_con).hide();
});
});
}
}
```
- **参数解释**:
- `id_tab`: 选项卡容器的 ID。
- `tag_tab`: 选项卡的标签类型。
- `id_con`: 内容容器的 ID。
- `tag_con`: 内容区域的标签类型。
- `act`: 触发事件的类型,可选值为 `"click"` 或 `"mouseover"`。
- **初始化**:首先初始化第一个选项卡及其对应的内容区域,即为第一个选项卡添加样式类 `cur` 并显示其对应的内容区域,隐藏其他内容区域。
- **事件绑定**:
- 如果 `act` 参数为 `"click"`,则为每个选项卡绑定点击事件。
- 如果 `act` 参数为 `"mouseover"`,则为每个选项卡绑定鼠标悬停事件。
- **事件处理逻辑**:
- 当触发事件时,调用 `cur(ele)` 函数为当前选项卡添加样式类 `cur`,并显示其对应的内容区域,同时隐藏其他内容区域。
##### 3. 初始化选项卡
```javascript
$(document).ready(function () {
tab("#tri", "li", "#game_con", "div", "click");
});
```
- **作用**:当文档加载完成后,初始化选项卡插件。
- **参数说明**:
- `#tri`: 选项卡容器的 ID。
- `"li"`: 选项卡的标签类型。
- `#game_con`: 内容容器的 ID。
- `"div"`: 内容区域的标签类型。
- `"click"`: 事件触发类型。
#### 四、HTML 演示代码分析
以下是一段简单的 HTML 演示代码,用于展示如何使用上述的 jQuery Tab 选项卡插件:
```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="GB2312">
<title>jQuery Tab 选项卡示例</title>
<link rel="stylesheet" href="style/enter.css" type="text/css">
<style type="text/css">
.cur {
color: red;
border-bottom: 2px solid green;
background: blue;
}
#ngame {
width: 500px;
}
#tri {
width: 500px;
background: #f1f1f1;
margin: 0;
padding: 0;
cursor: pointer;
}
#tri li {
float: left;
font-size: 12px;
padding: 2px;
margin-right: 10px;
color: #000;
}
</style>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
function cur(ele) {
$(ele).addClass("cur").siblings().removeClass("cur");
}
function tab(id_tab, tag_tab, id_con, tag_con, act) {
$(id_tab).find(tag_tab).eq(0).addClass("cur");
$(id_con).find(tag_con).eq(0).show().siblings(tag_con).hide();
if (!act) { act = "click"; }
if (act == "click") {
$(id_tab).find(tag_tab).each(function (i) {
$(this).click(function () {
cur(this);
$(id_con).find(tag_con).eq(i).show().siblings(tag_con).hide();
});
});
}
if (act == "mouseover") {
$(id_tab).find(tag_tab).each(function (i) {
$(this).mouseover(function () {
cur(this);
$(id_con).find(tag_con).eq(i).show().siblings(tag_con).hide();
});
});
}
}
$(document).ready(function () {
tab("#tri", "li", "#game_con", "div", "click");
});
</script>
</head>
<body>
<div id="tri">
<ul>
<li>选项卡1</li>
<li>选项卡2</li>
<li>选项卡3</li>
</ul>
</div>
<div id="game_con">
<div>内容区域1</div>
<div>内容区域2</div>
<div>内容区域3</div>
</div>
</body>
</html>
```
- **HTML 结构**:包含一个选项卡容器 (`<div id="tri">`) 和一个内容容器 (`<div id="game_con">`)。
- **CSS 样式**:定义了 `.cur` 类的样式,用于高亮显示当前激活的选项卡。
- **JavaScript 代码**:实现了上述的 jQuery Tab 选项卡插件,并在文档加载完成后初始化该插件。
#### 五、总结
通过以上对 jQuery Tab 选项卡通用函数的核心代码和 HTML 演示代码的分析,我们可以看出该插件的实现逻辑清晰、易于理解和使用。开发者可以根据实际需求调整事件触发方式(点击或鼠标悬停),并且通过类选择器实现多次重用,使得该插件具有较高的灵活性和实用性。
weixin_38722193
- 粉丝: 5
- 资源: 908
最新资源
- 中兴F50随身WiFi工具箱
- 前端分析-2023071100789
- 前端分析-2023071100789
- S120通过111报文实现基本定位功能.mp4
- Labview2019版本,集成了欧姆龙全系列PLC,西门子全系列plc,三菱TCP IP通讯 所有相对应的函数模块,可以直接调用,也用当前程序作为调试软件
- 基于web的智慧养老管理系统(源码+数据库)161134
- CHSI_APP_0.9.14.16.apk
- Comsol光学仿真模型:包括纳米球 柱 Mie散射多级分解
- 前端分析-2023071100789
- 基于vsg 控制的matlab仿真模型,有负载切,能完美运行供学习参考
- 智慧养老管理系统(源码+数据库)161134
- 【百字作文联盟】百字作文寒假作业.zip
- 基于IEEE33节点的配电网重构,采用最优流法(和粒子群算法)开展了配电网重构工作,得到重构方案,应打开的开关数等,同时对比了重构前后的网损和电压结果
- 用python制作简单的大鱼吃小鱼游戏
- 基于粒子群算法的配电网无功优化 基于IEEE33节点配电网,以无功补偿器的接入位置和容量作为优化变量,以牛拉法进行潮流计算,以配电网网损最小为优化目标,通过优化求解,得到最佳接入位置和容量,优化结果
- Labview打地鼠游戏