轻松实现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 相关文章推荐
jQuery动态添加 input type=file的实现代码
Jun 14 Javascript
js获取select选中的option的text示例代码
Dec 19 Javascript
JQuery中操作Css样式的方法
Feb 12 Javascript
Jquery日期选择datepicker插件用法实例分析
Jun 08 Javascript
JavaScript的String字符串对象常用操作总结
May 26 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
Aug 05 Javascript
完美解决IE9浏览器出现的对象未定义问题
Sep 29 Javascript
backbone简介_动力节点Java学院整理
Jul 14 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
Sep 21 Javascript
element-ui中select组件绑定值改变,触发change事件方法
Aug 24 Javascript
微信小程序http连接访问解决方案的示例
Nov 05 Javascript
js实现随机div颜色位置 类似满天星效果
Oct 24 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写的小东西
2006/12/06 PHP
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
Memcached常用命令以及使用说明详解
2013/06/27 PHP
php防止sql注入代码实例
2013/12/18 PHP
PHP5.3新特性小结
2016/02/14 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
php依赖注入知识点详解
2019/09/23 PHP
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
js使用generator函数同步执行ajax任务
2017/09/05 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
JavaScript实时更新当前的时间的示例代码
2020/07/15 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
nodejs中的异步编程知识点详解
2021/01/17 NodeJs
简单说明Python中的装饰器的用法
2015/04/24 Python
Python的SQLAlchemy框架使用入门
2015/04/29 Python
python基础之入门必看操作
2017/07/26 Python
树莓派实现移动拍照
2019/06/22 Python
python控制台实现tab补全和清屏的例子
2019/08/20 Python
python实现飞机大战小游戏
2019/11/08 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
外贸业务员岗位职责
2013/11/24 职场文书
大学四年的个人自我评价
2014/01/14 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
小学老师对学生的评语
2014/12/29 职场文书
离婚协议书的范本
2015/01/27 职场文书
新手入门Mysql--sql执行过程
2021/06/20 MySQL
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python