轻松实现jquery选项卡切换效果


Posted in Javascript onOctober 10, 2016

很早之想就学习jquery的插件写法,一直拖到现在,今天趁着没什么工作忙,搜索些资料学习下,写了个比较简单的选项卡效果。

刚开始有看到一个很通俗易通的例子:alert对话框

jquery.alertMsg.js

/**
 * [description]
 * @param {[type]} $ [description]
 * @return {[type]} [description]
 */
(function($){

 $.fn.alertMsg = function(options) {

 var defaults = {
  mouseEvent: 'clcik',
  msg: 'hello world'
 }
 var options = $.extend(defaults, options);
 var $this = $(this);

 $this.on(options.mouseEvent, function(e){
  alert(options.msg);
 })
 }

})(jQuery)

调用方式:

<span id="test">test</span>

$(function(){
 $('#test').alertMsg({
  mouseEvent : "click", 
  msg : "第一次写插件!" 
 });
});

jQuery插件结构

(function($){
 // tabs 自定义的插件名称
 $.fn.tabs = function(options) {

  // 设置默认参数
  var defaults = {
   activeClass: 'active'
   ... 
  }
  // 对象扩展
  var options = $.extend(defaults, options);

  return $(this).each(function(){
   // 编写相应实现代码
  })
 }

})(jQuery)

选项卡实现:

1、HTML结构

<div id="tab">
 <ul>
  <li>选项1</li>
  <li>选项2</li>
  <li>选项3</li>
  <li>选项4</li>
 </ul>
 <div id="tabCon" class="tab-con">
  <div>1的内容</div>
  <div>2的内容</div>
  <div>3的内容</div>
  <div>4的内容</div>
 </div>
</div>

2、jquery.tabs.js

(function($){

 $.fn.tabs = function(options) {

   var defaults = {
    Event: 'click',
    activeClass: 'active'
   }
   var options = $.extend(defaults, options);

   return $(this).each(function(){

    var $thisTab = $(this).find('ul');
    var $tabCon = $thisTab.siblings('div');

    $tabCon.find('div').each(function(){
     $(this).hide();
    });

    $thisTab.find('li:first').addClass(options.activeClass);
    $tabCon.find('div:first').show();

    $thisTab.find('li').each(function(index){

     $(this).on(options.Event, function(){

      $(this).siblings().removeClass(options.activeClass);
      $(this).addClass(options.activeClass);
      $tabCon.find('div').eq(index).show().siblings().hide();

     });
     
    });
   });
  }
 
})(jQuery)

3、调用

$('#tab').tabs({
  activeClass: 'active'
 });

小结:对jQuery插件的初识,感觉应该还要继续优化和扩展,继续学习!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

精彩专题分享:javascript选项卡操作方法汇总 jQuery选项卡操作方法汇总

Javascript 相关文章推荐
Javascript 调试利器 Firebug使用详解六
Jul 05 Javascript
奉献给JavaScript初学者的编写开发的七个细节
Jan 11 Javascript
ClearTimeout消除闪动实例代码
Feb 29 Javascript
Vue异步组件使用详解
Apr 08 Javascript
javascript回调函数的概念理解与用法分析
May 27 Javascript
安装vue-cli报错 -4058 的解决方法
Oct 19 Javascript
用Node提供静态文件服务的方法
Jul 06 Javascript
vue项目打包部署_nginx代理访问方法详解
Sep 20 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
Sep 29 Javascript
使用pm2自动化部署node项目的方法步骤
Jan 28 Javascript
Openlayers显示瓦片网格信息的方法
Sep 28 Javascript
JS中循环遍历数组的四种方式总结
Jan 23 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
Oct 10 #Javascript
Javascript生成带参数的二维码示例
Oct 10 #Javascript
详细讲解JavaScript中的this绑定
Oct 10 #Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
Oct 10 #Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
Oct 10 #Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
Oct 09 #Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
Oct 09 #Javascript
You might like
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
Phpstorm+Xdebug断点调试PHP的方法
2018/05/14 PHP
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
使用Plupload实现直接上传附件至七牛云存储
2014/12/26 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
jquery实现九宫格大转盘抽奖
2015/11/13 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
浅谈开发eslint规则
2018/10/01 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
Python判断Abundant Number的方法
2015/06/15 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
如何使用Python 打印各种三角形
2019/06/28 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
Annoushka英国官网:英国奢侈珠宝品牌
2018/10/20 全球购物
C# Debug和Testing相关面试题
2015/10/25 面试题
软件工程师面试题
2012/06/25 面试题
什么是会话Bean
2015/05/14 面试题
优秀党员转正的自我评价
2013/10/06 职场文书
《童趣》教学反思
2014/02/19 职场文书
工作睡觉检讨书
2014/02/25 职场文书
理发店策划方案
2014/06/05 职场文书
师德师风整改措施
2014/10/24 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
测量JavaScript函数的性能各种方式对比
2021/04/27 Javascript
muduo TcpServer模块源码分析
2022/04/26 Redis