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 相关文章推荐
javascript 数组排序函数sort和reverse使用介绍
Nov 21 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
Oct 17 Javascript
node.js中的fs.chown方法使用说明
Dec 16 Javascript
JavaScript操作HTML元素和样式的方法详解
Oct 21 Javascript
DeviceOne 让你一见钟情的App快速开发平台
Feb 17 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
Nov 24 Javascript
Bootstrap表单使用方法详解
Feb 17 Javascript
在vue中获取dom元素内容的方法
Jul 10 Javascript
Vue单文件组件的如何使用方式介绍
Jul 28 Javascript
详解vue.js之props传递参数
Dec 12 Javascript
详解Vue3 Composition API中的提取和重用逻辑
Apr 29 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
Nov 09 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
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
yii2实现Ueditor百度编辑器的示例代码
2018/11/02 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
vue与bootstrap实现时间选择器的示例代码
2017/08/26 Javascript
使用javascript做在线算法编程
2018/05/25 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
Python虚拟环境项目实例
2017/11/20 Python
简述Python2与Python3的不同点
2018/01/21 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
Python用input输入列表的实例代码
2020/02/07 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
Python流程控制语句的深入讲解
2020/06/15 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
举例讲解Python装饰器
2020/12/24 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
初中毕业生的自我评价
2014/03/03 职场文书
二年级学生评语大全
2014/04/23 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
责任书范本
2014/08/25 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
防震减灾主题班会
2015/08/14 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
pandas中对文本类型数据的处理小结
2021/11/01 Python