轻松实现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 节点操作 以及DOMDocument属性和方法
Dec 06 Javascript
js 获取子节点函数 (兼容FF与IE)
Apr 18 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
Oct 17 Javascript
Jquery中获取iframe的代码
Jan 11 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
Aug 29 Javascript
node.js中Socket.IO的进阶使用技巧
Nov 04 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
Jun 19 Javascript
js确认框confirm()用法实例详解
Jan 07 Javascript
10行原生JS实现文字无缝滚动(超简单)
Jan 02 Javascript
Vue多系统切换实现方案
Jun 05 Javascript
微信小程序实现批量倒计时功能
Nov 01 Javascript
三种方式清除vue路由跳转router-link的历史记录
Apr 10 Vue.js
为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
一个odbc连mssql分页的类
2006/10/09 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
PHP MVC框架中类的自动加载机制实例分析
2019/09/18 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
bootstrap table动态加载数据示例代码
2017/03/25 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
2018/08/20 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
用实例分析Python中method的参数传递过程
2015/04/02 Python
Python多线程编程简单介绍
2015/04/13 Python
python实现爬取千万淘宝商品的方法
2015/06/30 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
python中selenium库的基本使用详解
2020/07/31 Python
html5 canvas 简单画板实现代码
2012/01/05 HTML / CSS
MAC Cosmetics巴西官方网站:M·A·C彩妆
2019/04/18 全球购物
娇韵诗Clarins意大利官方网站:法国天然护肤品牌
2020/03/11 全球购物
Skechers越南官方网站:来自美国的运动休闲品牌
2021/02/22 全球购物
介绍一下gcc特性
2012/01/20 面试题
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
企业消防安全责任书
2014/07/23 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
教导处教学工作总结
2015/08/12 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书