使用jQuery.extend创建一个简单的选项卡插件
选项卡样式如图,请忽略丑陋的样式,样式可以随意更改

主要是基于jquery的extend扩展出的一个简单的选项卡插件,注意:这里封装的类使用的是es6中的class,所以不兼容ie8等低版本浏览器呦!想要兼容低版本可以参考思路,然后换成原生的构造函数原型继承方式
以下是 tabs.js 文件:
class Tabs{
constructor(that){
this.that=that;
this.opt={//默认参数,不传走默认
eventN:'click',
btns:['新闻','娱乐','游戏'],
contents:['新闻1','娱乐1','游戏1']
}
}
init(opt){
//是否用默认参数
$.extend(this.opt,opt);//匹配传递进来的配置参数,有就覆盖,没有就用默认的
//创建按钮
this.creatButton();
//创建切换内容
this.creatContents();
//添加功能
this.events(this.opt.eventN);
}
creatButton(){
let html=``;
this.opt.btns.forEach((e,i)=>{
html+=`<button class="${i===0?'action':''}">${e}</button>`;
});
this.that.append(html);
}
creatContents(){
let html=``;
this.opt.contents.forEach((e,i)=>{
html+=`<div class="${i===0?'show':''}">${e}</div>`;
});
this.that.append(html);
}
events(evName){
let buts=this.that.find('button'),
contents=this.that.find('div');
buts.on(evName,function () {
buts.removeClass('action');
contents.removeClass('show');
$(this).addClass('action');
let inx=$(this).index('button');
contents.eq(inx).addClass('show');
});
}
}
$.fn.extend({
tabs:function (opt) {
let t=new Tabs(this);//this是jq对象
t.init(opt);
}
})
调用方式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>vue</title>
<style>
#app{
width: 210px;
height: 100px; }
#app button{
width: 70px;
height: 44px;
line-height: 44px;
background: yellow;
border:0;
cursor: pointer;
}
#app button.action{ background: darkorange;
}
#app div{
display: none;
width: 210px;
background: slateblue;
}
#app div.show{
display: block;
} </style> </head>
<body> <section id="app">
</section>
<script src="./jquery.js"></script>
<script src="./tabs.js"></script>
<script> $('#app').tabs({
eventN:'mouseover',//默认click
btns:['新闻1','娱乐2','游戏1'],
contents:['新闻内容','娱乐内容','游戏内容']
}); </script>
</body>
</html>
赋值代码,效果就可以呈现!
使用jQuery.extend创建一个简单的选项卡插件的更多相关文章
- 利用HTML5与jQuery技术创建一个简单的自动表单完成
来源:GBin1.com 在线演示 在线下载 谷歌快速搜索自带大量自动完成插件——库中甚至还有一个附带的jQuery UI共享选项.然而今天我要寻找一个替代的解决方案.由DevBridge开发的j ...
- Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目
前面几篇我们介绍了如何利用 C# + XAML 完成Windows Store App 功能的实现,接下来的几篇我们来看看如何利用 Html + WinJS 来完成这些功能. 本篇我们使用WinJS ...
- Highcharts创建一个简单的柱状图
新建一个html文件,将highcharts引入到你的页面后,通过两个步骤我们就可以创建一个简单的图表了. 1.创建div容器 在页面的 body部分创建一个div,并指定div 的 id,高度和宽度 ...
- SharePoint创建一个简单的Visio Web部件图
SharePoint创建一个简单的Visio Web部件图 Visio有很多强大的Mash-up混聚功能,使它能够轻松集成到SharePoint 2010中. 1. 打开Visio 2010,创建新的 ...
- 如何创建一个简单的Visual Studio Code扩展
注:本文提到的代码示例下载地址>How to create a simple extension for VS Code VS Code 是微软推出的一款轻量级的代码编辑器,免费,开源,支持多种 ...
- 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型
第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...
- 如何创建一个简单的C++同步锁框架(译)
翻译自codeproject上面的一篇文章,题目是:如何创建一个简单的c++同步锁框架 目录 介绍 背景 临界区 & 互斥 & 信号 临界区 互斥 信号 更多信息 建立锁框架的目的 B ...
- ADF_General JSF系列1_创建一个简单的JSF Application
2015-02-17 Creatd By BaoXinjian
- IntelliJ IDEA 15 部署Tomcat及创建一个简单的Web工程
一.部署Tomcat 二.创建一个简单的Web工程 2.1创建一个新工程 创建一个新工程 设置JDK及选择Web Application (创建的是Web工程) 点击Next,选择工作空间,起个工程名 ...
随机推荐
- Number() 与 parseInt()解析
在 Python 中,将字符串转为整型变量的函数是 int() ,直接使用 int("123")就可以得到 123的输出结果,这样可以比较快速的得到我们想要的结果,在 js 中将 ...
- oracle一条语句插入多个值的方法
今天在实践过程中遇到一个问题, 我想往数据库插入多条数据时,使用了如下语句: insert into 表1 (字段1,字段2) values (1,2),(2,3),(3,4); 这条语句在mysql ...
- Python-默背单词
数据库单词: 默认单词 单词说明 innodb 事务,主键,外键,tree,表行锁 myisam 主要以插入读取和插入操作 memory 所有数据保存在内存中 ACID 原子性,一致性,隔离性,持 ...
- FB的新专利竟要监看使用者的脸
大家应该会很好奇Facebook又在搞什么新花招,这个专利的名称是"Techniques for emotion detection and content delivery",其 ...
- Python实现网络多人聊天室
网络多人聊天室 文件结构: chatroom ├── client.py # 客户端代码 ├── language.py # 语言文件 ├── server.py # 服务端代码 └── set ...
- gitee+hexo搭建个人博客
通过gitee和hexo搭建个人博客 首先准备软件: git (提供命令git) git官网 notepad++(方便编辑)notepad++官网 nodejs(hexo依赖)nodejs官网 7z( ...
- 保存localStorage并访问
将用户的输入保存至localStorage对象的属性中,这些属性在再次访问时还会继续保持在原位置. 如果你在浏览器中按照fil://URL的方式直接打开本地文件,则文法在某些浏览器中使用存储功能(比如 ...
- JAVA基础知识(三):input.nextLine() 和input.next()
next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键.Tab键或Enter键等结束符,next()方法会自动将其过滤掉:只有在读取到有效字符之后,next()方 ...
- 认识Linux工具
Centos7镜像网站:清华,阿里,网易 软件安装:lamp httpd (认识) yum: 安装工具 需要选版本和特性,所以生产不用yum rpm:安装依赖 源码编译 shell脚本:yu ...
- Linux--shel的if判断语句--05
if条件语句的使用格式: 1.单分支语句 if [ 条件 ];then 执行语句 fi 注意:[ 条件 ] :条件与中括号要用空格分割:下面的语句同理. 2.双分支语句 if [ 条件 ];then ...