轻松实现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中各种trim的实现详细解析
Dec 10 Javascript
理解Javascript的动态语言特性
Jun 17 Javascript
jQuery.prop() 使用详解
Jul 19 Javascript
拥有一个属于自己的javascript表单验证插件
Mar 24 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
Jul 27 Javascript
jquery select2的使用心得(推荐)
Dec 04 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
Feb 08 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
Jun 02 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
Jul 18 jQuery
Vue.js分页组件实现:diVuePagination的使用详解
Jan 10 Javascript
JS实现li标签的删除
Apr 12 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
Sep 17 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
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
javascript 动态添加表格行
2006/06/22 Javascript
传智播客学习之java 反射
2009/11/22 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
Jquery Ajax请求代码(2)
2011/01/07 Javascript
jquery中:input和input的区别分析
2011/07/13 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
基于构造函数的五种继承方法小结
2017/07/27 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
node事件循环和process模块实例分析
2020/02/14 Javascript
vue iview实现动态新增和删除
2020/06/17 Javascript
python实现ip查询示例
2014/03/26 Python
Python3.5 Pandas模块之DataFrame用法实例分析
2019/04/23 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
Yahoo-PHP面试题3
2012/01/14 面试题
学前教育教师求职自荐信
2013/09/22 职场文书
计算机专业优秀大学生自我总结
2014/01/21 职场文书
简历中的自我评价范文
2014/02/05 职场文书
感恩父母的演讲稿
2014/05/06 职场文书
小学生植树节活动总结
2014/07/04 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
答谢词范文
2015/01/05 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书