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

 更新时间:2017年08月30日 13:35:02   作者:ghostwu  
这篇文章主要为大家详细介绍了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实现表格与ckeckbox的全选与单选功能

    jQuery实现表格与ckeckbox的全选与单选功能

    先给大家介绍下jQuery实现表格与ckeckbox的全选与单选功能,以及通过js实现隐藏与显示铵钮功能的实例代码,需要的朋友参考下吧
    2016-11-11
  • JQUERY的AJAX请求缓存里的数据问题处理

    JQUERY的AJAX请求缓存里的数据问题处理

    这篇文章主要介绍了JQUERY的AJAX请求缓存里的数据问题处理的相关资料,需要的朋友可以参考下
    2016-02-02
  • jQuery实现列表自动循环滚动鼠标悬停时停止滚动

    jQuery实现列表自动循环滚动鼠标悬停时停止滚动

    需要在页面中一个小的区域循环滚动展示新闻并且鼠标悬停时停止滚动并提示,离开后,继续滚动,具体实现如下,喜欢的朋友可以参考下
    2013-09-09
  • jQuery插件PageSlide实现左右侧栏导航菜单

    jQuery插件PageSlide实现左右侧栏导航菜单

    jQuery pageSlide 是一个可以让网页出现滚动效果的jQuery插件,它可以控制一个隐藏页面的显示和关闭。具体来说,就是当前页占一个完整页面,隐藏页是看不到的,你设置一个控制的地方,点击该控制时触发事件,隐藏的页面就滑出来,再次点击隐藏页面以外的地方,它就又关闭
    2015-04-04
  • jQuery niceScroll滚动条错位问题的解决方法

    jQuery niceScroll滚动条错位问题的解决方法

    下面小编就为大家带来一篇jQuery niceScroll滚动条错位问题的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • jquery必须知道的一些常用特效方法及使用示例(整理)

    jquery必须知道的一些常用特效方法及使用示例(整理)

    本文整理了一些常用的特效示例,如:.jQuery fadeIn() 用于淡入已隐藏的元素、jQuery fadeToggle()方法可以在 fadeIn()与 fadeOut()方法之间进行切换等等,感兴趣的朋友可以参考下哈
    2013-06-06
  • 使用jQuery实现掷骰子游戏

    使用jQuery实现掷骰子游戏

    这篇文章主要介绍了使用jQuery实现掷骰子游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • jQuery 拖动层(在可视区域范围内)

    jQuery 拖动层(在可视区域范围内)

    获取层元素,在浏览器可视区域的最左、最边,最上、最下的值。并且在拖动层的过程中,把当前层的坐标值,去和这几个值,做比较,如果超过这些值。那么就不能再拖动这个方向,即把值设为最小或最大
    2012-05-05
  • jQuery中:radio选择器用法实例

    jQuery中:radio选择器用法实例

    这篇文章主要介绍了jQuery中:radio选择器用法,实例分析了:radio选择器的功能、定义及匹配单选按钮的使用技巧,需要的朋友可以参考下
    2015-01-01
  • jQuery简单实现日历的方法

    jQuery简单实现日历的方法

    这篇文章主要介绍了jQuery简单实现日历的方法,涉及jQuery操作日期的相关技巧,比较简单实用,需要的朋友可以参考下
    2015-05-05

最新评论