轻松实现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 相关文章推荐
js中如何复制一个对象并获取其所有属性和属性对应的值
Oct 24 Javascript
js定时器(执行一次、重复执行)
Mar 07 Javascript
javascript实现单击和双击并存的方法
Dec 13 Javascript
浅析jQuery Mobile的初始化事件
Dec 03 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
Apr 28 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
Jun 07 Javascript
laydate.js日期时间选择插件
Jan 04 Javascript
Bootstrap面板使用方法
Jan 16 Javascript
javascript自定义事件功能与用法实例分析
Nov 08 Javascript
详解js跨域请求的两种方式,支持post请求
May 05 Javascript
layui插件表单验证提交触发提交的例子
Sep 09 Javascript
vue 实现 rem 布局或vw 布局的方法
Nov 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
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
php 模拟get_headers函数的代码示例
2013/04/27 PHP
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
php分页查询的简单实现代码
2017/03/14 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
理解Javascript_09_Function与Object
2010/10/16 Javascript
图片延迟加载的实现代码(模仿懒惰)
2013/03/29 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
JS中自定义事件的使用与触发操作实例分析
2019/11/01 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
[02:39]DOTA2英雄基础教程 极限穿梭编织者
2013/12/05 DOTA
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
详解用Python实现自动化监控远程服务器
2019/05/18 Python
深入了解Django中间件及其方法
2019/07/26 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
HTML5 Canvas绘制文本及图片的基础教程
2016/03/14 HTML / CSS
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
Reformation官网:美国女装品牌
2018/09/14 全球购物
精选奢华:THE LIST
2019/09/05 全球购物
会计电算化应届生求职信
2013/11/03 职场文书
《太阳》教学反思
2014/02/21 职场文书
产品质量承诺书范文
2014/03/27 职场文书
校园标语大全
2014/06/19 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
大连导游词
2015/02/12 职场文书