jQuery进行组件开发完整实例


Posted in Javascript onDecember 15, 2015

本文实例讲述了jQuery进行组件开发的方法,分享给大家供大家参考,具体如下:

前面的《JavaScript组件开发》分析了JavaScript进行组件开发的技巧,这里分析使用jQuery进行组件开发的方法。

使用jQuery进行组件开发和使用纯JavaScript脚本(不使用框架)原理基本类似,特别是公共方法的组织是一样的。

不同点是,jQuery使用了插件机制,通过$()直接进行操作对象(DOM元素)绑定,然后对DOM元素或HTML代码进行绑定事件等的操作。

另一个不同点则是把jQuery当做工具来使用,用来创建DOM对象,快速查找指定DOM对象等。

例子测试通过。

初级简单示例,只实现了增加页和选择页功能。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> Design JS component with jQuery </title>
<script src="jquery.js" type="text/javascript"></script>
<link href="tabs.css" rel="stylesheet" type="text/css" />
 <style>
.tabsDiv{width: 500px;height: 350px;margin-top: 0px;margin-left: 0px;}
.tabsDiv ul{
  width: 500px;height: 20px;
  list-style: none;
  margin-bottom: 0px;margin: 0px;
  padding: 0px;
  border-left:solid 1px #ffffff;border-right:solid 1px #ffffff;border-top:solid 1px #ffffff;border-bottom:solid 1px #e0e0e0;
}
.tabsDiv div{
  width: 500px;height: 330px;
  background-color: #ffffff; 
  border:solid 1px #e0e0e0;
}
.tabsSeletedLi{
  width: 100px;height: 20px;
  background-color: white;
  float: left;
  text-align: center;
  border-left:solid 1px #e0e0e0;border-right:solid 1px #e0e0e0;border-top:solid 1px #e0e0e0;border-bottom:solid 1px #ffffff;
}
.tabsSeletedLi a{
  width: 100px;
  height: 20px;
  color:#000000;
  text-decoration:none;
}
.tabsUnSeletedLi{
  width: 100px;height: 20px;
  background-color: #e0e0e0; 
  float: left;
  text-align: center;
  border:solid 1px #e0e0e0;
}
.tabsUnSeletedLi a{
  width: 100px;height: 20px;
  color: #ffffff;
  text-decoration:none;
}
 </style> 
</head>
<body>
<!--
  <div style="width:400px;height:100px;border:solid 1px #e0e0e0;">
  </div>
-->
 <!--tabs示例-->
 <div id="mytabs">
  <!--选项卡区域-->
  <ul>
   <li><a href="#tabs1">选项1</a></li>
   <li><a href="#tabs2">选项2</a></li>
   <li><a href="#tabs3">选项3</a></li>
  </ul>
  <!--面板区域-->
  <div id="tabs1">11111</div>
  <div id="tabs2">22222</div>
  <div id="tabs3">33333</div>
 </div>
<script lang="javascript">
(function ($) {
 $.fn.tabs = function (options) {
   var me = this;
    //使用鼠标移动触发,亦可通过click方式触发页面切换
  var defualts = { switchingMode: "mousemove" };
    //融合配置项
  var opts = $.extend({}, defualts, options);
    //DOM容器对象,类似MX框架中的$e
  var $e = $(this);
  //选中的TAB页索引
  var selectedIndex = 0;
  //TAB列表
  var $lis;
    //PAGE容器
    var aPages = [];
    //初始化方法
    me.init = function(){
      //给容器设置样式类
    $e.addClass("tabsDiv");   
    $lis = $("ul li", $e);
    //设置TAB头的选中和非选中样式
    $lis.each(function(i, dom){
      if(i==0){
        $(this).addClass("tabsSeletedLi")
      }else{
        $(this).addClass("tabsUnSeletedLi");
      }
    });
      //$("ul li:first", $e).addClass("tabsSeletedLi");
    //$("ul li", $e).not(":first").addClass("tabsUnSeletedLi");
      //$("div", $e).not(":first").hide();
      //TAB pages绑定
      var $pages = $('div', $e);
      $pages.each(function(i, dom){
        if(i == 0){
          $(this).show();
        }else{
          $(this).hide();
        }
        aPages.push($(this));    
      });
      //绑定事件
    $lis.bind(opts.switchingMode, function() {
      var idx = $lis.index($(this))
     me.selectPage(idx);
    });    
    }
    /**
     * 选中TAB页
     *
     */
    me.selectPage = function(idx){
      if (selectedIndex != idx) {      
    $lis.eq(selectedIndex).removeClass("tabsSeletedLi").addClass("tabsUnSeletedLi");
    $lis.eq(idx).removeClass("tabsUnSeletedLi").addClass("tabsSeletedLi");
    aPages[selectedIndex].hide();
     aPages[idx].show();
    selectedIndex = idx;
   };
    }
  me.showMsg = function(){
    alert('WAHAHA!');
  }
    //自动执行初始化函数
    me.init();
    //返回函数对象
    return this;
 };
})(jQuery);
</script> 
<script type="text/javascript">
/*
 $(function () {
  $("#mytabs").tabs;
 });
*/
  var tab1 = $("#mytabs").tabs();
  tab1.showMsg();
</script> 
</body>
</html>

最终效果如图所示:

jQuery进行组件开发完整实例

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
jqPlot jquery的页面图表绘制工具
Jul 25 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
Jun 20 Javascript
JS继承用法实例分析
Feb 05 Javascript
javascript日期操作详解(脚本之家整理)
Sep 05 Javascript
jQuery实现的模拟弹出窗口功能示例
Nov 24 Javascript
BootStrap 实现各种样式的进度条效果
Dec 07 Javascript
jQuery实现可拖动进度条实例代码
Jun 21 jQuery
浅谈node中的exports与module.exports的关系
Aug 01 Javascript
vue 左滑删除功能的示例代码
Jan 28 Javascript
Vue实现数据表格合并列rowspan效果
Nov 30 Javascript
浅析Angular 实现一个repeat指令的方法
Jul 21 Javascript
微信小程序实现点击导航条切换页面
Nov 19 Javascript
JavaScript组件开发完整示例
Dec 15 #Javascript
jQuery获取DOM节点实例分析(2种方式)
Dec 15 #Javascript
JavaScript为事件句柄绑定监听函数实例详解
Dec 15 #Javascript
JavaScript获取当前cpu使用率的方法
Dec 15 #Javascript
js简单网速测试方法完整实例
Dec 15 #Javascript
JQuery中Ajax()的data参数类型实例分析
Dec 15 #Javascript
理解javascript闭包
Dec 15 #Javascript
You might like
PHP针对JSON操作实例分析
2015/01/12 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
javascript修改IMG标签的src问题
2014/03/28 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
vue2 设置router-view默认路径的实例
2018/09/20 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
vue动态子组件的两种实现方式
2019/09/01 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
在Python中处理列表之reverse()方法的使用教程
2015/05/21 Python
python之DataFrame实现excel合并单元格
2021/02/22 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
Python将视频或者动态图gif逐帧保存为图片的方法
2019/09/10 Python
flask框架配置mysql数据库操作详解
2019/11/29 Python
澳洲网红粉泥面膜:Sand & Sky
2019/08/13 全球购物
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
本科毕业自我鉴定
2014/03/20 职场文书
银行求职自荐信范文
2015/03/04 职场文书
2015年大学生工作总结
2015/04/21 职场文书
交通事故被告代理词
2015/05/23 职场文书
闪闪红星观后感
2015/06/08 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js
关于JavaScript轮播图的实现
2021/11/20 Javascript
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技