全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

jquery插件开发之选项卡制作详解

在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 


相关文章: 建站之星在线客服如何快速接入解答?  网站制作新手教程,新手建设一个网站需要注意些什么?  jQuery 常见小例汇总  建站主机选虚拟主机还是云服务器更好?  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  如何解决VPS建站LNMP环境配置常见问题?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何在腾讯云服务器上快速搭建个人网站?  建站DNS解析失败?如何正确配置域名服务器?  济南企业网站制作公司,济南社保单位网上缴费步骤?  建站主机系统SEO优化与智能配置核心关键词操作指南  如何做静态网页,sublimetext3.0制作静态网页?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  如何零基础在云服务器搭建WordPress站点?  微课制作网站有哪些,微课网怎么进?  建站之星后台密码遗忘或太弱?如何重置与强化?  ,如何利用word制作宣传手册?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  建站之星多图banner生成与模板自定义指南  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  定制建站价位费用解析与套餐推荐全攻略  建站与域名管理如何高效结合?  制作网页的网站有哪些,电脑上怎么做网页?  建站VPS能否同时实现高效与安全翻墙?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  如何在橙子建站上传落地页?操作指南详解  如何在阿里云通过域名搭建网站?  网站制作知乎推荐,想做自己的网站用什么工具比较好?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  网站制作网站,深圳做网站哪家比较好?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  电商平台网站制作流程,电商网站如何制作?  如何在Golang中指定模块版本_使用go.mod控制版本号  如何自定义建站之星模板颜色并下载新样式?  网站制作公司,橙子建站是合法的吗?  微信小程序 input输入框控件详解及实例(多种示例)  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  为什么Go需要go mod文件_Go go mod文件作用说明  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  利用JavaScript实现拖拽改变元素大小  网站制作费用多少钱,一个网站的运营,需要哪些费用?  如何挑选高效建站主机与优质域名?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  Android使用GridView实现日历的简单功能  高端云建站费用究竟需要多少预算?  招商网站制作流程,网站招商广告语? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。