jquery插件开发之选项卡制作详解
发布时间 - 2026-01-11 03:02:05 点击率:次在jquery中,插件开发常见的有:

一种是为$函数本身扩展一个方法,这种是静态扩展(也叫类扩展),这种插件一般是工具方法,
还有一种是扩展在原型对象$.fn上面的,开发出来的插件是用在dom元素上面的
一、类级别的扩展
$.showMsg = function(){
alert('hello,welcome to study jquery plugin dev');
}
// $.showMsg();
注意要提前引入jquery库, 上例在$函数上面添加了一个方法showMsg,那么就可以用$.showMsg()调用了
$.showName = function(){
console.log( 'ghostwu' );
}
$.showName();
这种插件比较少见,一般都是用来开发工具方法,如jquery中的$.trim, $.isArray()等等
二、把功能扩展在$.fn上,
这种插件就是用在元素上,比如,我扩展一个功能,点击按钮,显示当前按钮的值
$.fn.showValue = function(){
return $(this).val();
}
$(function(){
$("input").click(function(){
// alert($(this).showMsg());
alert($(this).showMsg());
});
});
<input type="button" value="点我">
在$.fn上添加一个showValue方法, 返回当前元素的value值. 在获取到页面input元素,绑定事件之后,就可以调用这个方法,显示按钮的值 "点我",在实际插件开发中,常用的就是这种.接下来,我们就用这种扩展机制开发一个简单的选项卡插件:
页面布局与样式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="https://cdn.bootcss.com/jquery/1.12.0/jquery.js"></script>
<style>
#tab {
width:400px;
height:30px;
}
#tab li, #tab ul {
list-style-type:none;
}
#tab ul {
width:400px;
height: 30px;
border-bottom:1px solid #ccc;
line-height: 30px;
}
#tab ul li {
float:left;
margin-left: 20px;
padding:0px 10px;
}
#tab ul li.active {
background: yellow;
}
#tab ul li a {
text-decoration: none;
color:#666;
}
#tab div {
width:400px;
height:350px;
background-color:#ccc;
}
.clearfix:after{
content: '';
display: block;
clear: both;
height: 0;
visibility: hidden;
}
</style>
<script src="tab2.js"></script>
<script>
$(function(){
$("#tab").tabs( { evType : 'mouseover' } );
});
</script>
</head>
<body>
<div id="tab">
<ul class="clearfix">
<li><a href="#tab1">选项1</a></li>
<li><a href="#tab2">选项2</a></li>
<li><a href="#tab3">选项3</a></li>
</ul>
<div id="tab1">作者:ghostwu(1)
<div>博客: http://www.cnblogs.com/ghostwu/</div>
</div>
<div id="tab2">作者:ghostwu(2)
<div>博客: http://www.cnblogs.com/ghostwu/</div>
</div>
<div id="tab3">作者:ghostwu(3)
<div>博客: http://www.cnblogs.com/ghostwu/</div>
</div>
</div>
</body>
</html>
tab2.js文件
;(function ($) {
$.fn.tabs = function (opt) {
var def = { evType: "click" }; //定义了一个默认配置
var opts = $.extend({}, def, opt);
var obj = $(this);
$("ul li:first", obj).addClass("active");
obj.children("div").hide();
obj.children("div").eq(0).show();
$("ul li", obj).bind(opts.evType, function () {
$(this).attr("class", "active").siblings("li").attr("class","");
var id = $(this).find("a").attr("href").substring(1);
obj.children("div").hide();
$("#" + id, obj).show();
});
};
})(jQuery);
1,一个自执行函数,把插件封装成模块,把jQuery对象传给形参$
2,第3行,定义一个默认配置,选项卡的触发类型,默认为点击事件
3,第4行,如果opt传参,就用opt的配置,否者就用第3行的默认配置,这行的作用就是为了在不改变插件源码的情况下,可以配置插件的表现形式
4,第7-9行,让选项卡第一个div显示,其余的都隐藏,让第一个tab加上class='active' 黄色高亮选中
5,第11-16行,点击对应的选项卡,让对应的div显示与隐藏
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# jquery
# 选项卡
# 基于JQuery的6个Tab选项卡插件
# jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
# jquery tools之tabs 选项卡/页签
# jQuery之选项卡的简单实现
# jQuery实现选项卡切换效果简单演示
# JQuery Tab选项卡效果代码改进版
# JQuery 选项卡效果(JS与HTML的分离)
# jQuery EasyUI Tab 选项卡问题小结
# jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
# js/jQuery简单实现选项卡功能
# 就用
# 第一个
# 用在
# 博客
# 都是
# 可以用
# 绑定
# 也叫
# 开发工具
# 表现形式
# 大家多多
# 就可以
# 这行
# 不改变
# 默认为
# 情况下
# 在实际
# en
# head
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在万网自助建站平台快速创建网站?
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
JavaScript如何实现继承_有哪些常用方法
javascript基本数据类型及类型检测常用方法小结
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
Laravel storage目录权限问题_Laravel文件写入权限设置
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
企业网站制作这些问题要关注
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
Laravel如何配置和使用缓存?(Redis代码示例)
如何快速建站并高效导出源代码?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
C++时间戳转换成日期时间的步骤和示例代码
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
使用spring连接及操作mongodb3.0实例
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
Mybatis 中的insertOrUpdate操作
香港服务器网站推广:SEO优化与外贸独立站搭建策略
Laravel如何使用Gate和Policy进行授权?(权限控制)
如何在阿里云域名上完成建站全流程?
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
JavaScript Ajax实现异步通信
iOS验证手机号的正则表达式
php打包exe后无法访问网络共享_共享权限设置方法【教程】
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
如何在云主机快速搭建网站站点?
Python函数文档自动校验_规范解析【教程】
浅谈javascript alert和confirm的美化
奇安信“盘古石”团队突破 iOS 26.1 提权
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
IOS倒计时设置UIButton标题title的抖动问题
原生JS实现图片轮播切换效果
详解Android中Activity的四大启动模式实验简述
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
如何快速生成可下载的建站源码工具?
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
高防服务器租用首荐平台,企业级优惠套餐快速部署
JS碰撞运动实现方法详解
下一篇:如何快速将网站部署到云服务器?
下一篇:如何快速将网站部署到云服务器?

