轻松实现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 参考教程
Dec 29 Javascript
基于mootools 1.3框架下的图片滑动效果代码
Apr 22 Javascript
js获取网页高度(详细整理)
Dec 28 Javascript
js网页中的(运行代码)功能实现思路
Feb 04 Javascript
node.js中使用q.js实现api的promise化
Sep 17 Javascript
JS简单实现城市二级联动选择插件的方法
Aug 19 Javascript
微信小程序的分类页面制作
Jun 27 Javascript
AngularJS select设置默认值的实现方法
Aug 25 Javascript
Node.js使用MySQL连接池的方法实例
Feb 11 Javascript
JS数组实现分类统计实例代码
Sep 30 Javascript
基于vue实现微博三方登录流程解析
Nov 04 Javascript
javascript前端实现多视频上传
Dec 13 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
正则表达式语法
2006/10/09 Javascript
PHP 木马攻击防御技巧
2009/06/13 PHP
php while循环控制的简单实例
2016/05/30 PHP
你不知道的文件上传漏洞php代码分析
2016/09/29 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
PHP中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
JavaScript 布尔操作符解析  &amp;&amp; || !
2012/08/10 Javascript
js图片预加载示例
2014/04/30 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
js实时监控文本框输入字数的实例代码
2018/01/18 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
基于bootstrap页面渲染的问题解决方法
2018/08/09 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
2019/08/29 Javascript
简单介绍Python中的decode()方法的使用
2015/05/18 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
python的列表List求均值和中位数实例
2020/03/03 Python
python collections模块的使用
2020/10/16 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
JAVA招聘远程笔试题
2015/07/23 面试题
见习期自我鉴定
2013/11/07 职场文书
员工薪酬激励方案
2014/06/13 职场文书
本科应届生求职信
2014/08/05 职场文书
班主任经验交流材料
2014/12/16 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
怎样评估创业计划书是否有可行性?
2019/08/07 职场文书
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
Python 键盘事件详解
2021/11/11 Python