轻松实现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与jquery中获取当前鼠标的x、y坐标位置的代码
May 23 Javascript
js制作的鼠标悬浮时产生的下拉框效果
Oct 27 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
Jan 04 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
May 27 Javascript
js实现统计字符串中特定字符出现个数的方法
Aug 02 Javascript
js 颜色选择插件
Jan 23 Javascript
js弹出窗口简单实现代码
Mar 22 Javascript
jQuery选择器之子元素选择器详解
Sep 18 jQuery
jQuery实现鼠标响应式透明度渐变动画效果示例
Feb 13 jQuery
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
Sep 10 Javascript
js计算最大公约数和最小公倍数代码实例
Sep 11 Javascript
electron踩坑之remote of undefined的解决
Oct 06 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 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
PHP中使用CURL模拟登录并获取数据实例
2014/07/01 PHP
Zend Framework前端控制器用法示例
2016/12/11 PHP
详解php中的implements 使用
2017/06/13 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
妙用Jquery的val()方法
2012/06/27 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
python reduce 函数使用详解
2017/12/05 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
html5简介_动力节点Java学院整理
2017/07/07 HTML / CSS
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
售后服务承诺书范文
2014/03/26 职场文书
师德师风个人反思
2014/04/28 职场文书
公司投资建议书
2014/05/16 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
2014年秘书工作总结
2014/11/25 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
大学生安全教育心得体会
2016/01/15 职场文书
sql注入教程之类型以及提交注入
2021/08/02 MySQL
Python实现简单的俄罗斯方块游戏
2021/09/25 Python
Python Matplotlib库实现画局部图
2021/11/17 Python
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python
MySql数据库 查询时间序列间隔
2022/05/11 MySQL