http://www.imooc.com/learn/99  阿当大话西游之WEB组件  2016-4-19

jquery插件开发:  2016-3-1

http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html  讲解

http://isux.tencent.com/half-package-web-components-for-design.html  面向设计的半封装web组件开发  2016-4-6

这是个最简单的:   (方法调用模式)

  1. <script src="http://cdn.bootcss.com/jquery/1.12.1/jquery.min.js"></script>
  2. <script type="text/javascript">
  3. $(function(){
  4. var WG={
  5. prov:11,
  6. city:234,
  7. test1:function(){
  8. alert(this.city);
  9. }
  10. }
  11. WG.test1();
  12. </script>

多级类:    2016-3-17

这是类似json串的写法。 都是“名——值”的对应关系。 值可以是属性、方法,还可以是对象、数组————只要你愿意,把什么都可以塞进去

  1. <script src="http://cdn.bootcss.com/jquery/1.12.1/jquery.min.js"></script>
  2. <script type="text/javascript">
  3. $(function(){
  4. var WG={
  5. city:110,
  6. test1:function(){
  7. alert(this.city);
  8. },
  9. base:{
  10. city:110101,
  11. test1:function(){
  12. alert(this.city);
  13. },
  14. test2:function(){
  15. alert(WG.city);
  16. alert(WG.arr[2]);
  17. }
  18. },
  19. arr:[555,444,333,222,111]
  20. }
  21. //-----------------------------
  22. $("#button1").click(function(){
  23. WG.test1();
  24. });
  25. $("#button2").click(function(){
  26. WG.base.test1();
  27. });
  28. $("#test2").click(function(){
  29. WG.base.test2();
  30. });
  31.  
  32. });
  33. </script>
  34. <input type="button" value="一级" id="button1">
  35. <input type="button" value="二级" id="button2">
  36. <input type="button" value="test2" id="test2">

jQuery.fn.extend(object) ; 给jQuery对象添加方法。

jQuery.fn = jQuery.prototype = { }

jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。

  1. // 2016-3-1 17:00
  2.  
  3. $(function(){
  4.  
  5. /*
  6. 插件:弹窗
  7. 调用方式:
  8. //$('.js_design_pop').popLayer({timeout:223});//延时关闭
  9. $('.js_design_pop').popLayer();
  10.  
  11. */
  12. var popLayer = function (target, options) {
  13. this.options = null;
  14. this.target = null;
  15. this.timeout = null;
  16. this.init(target, options);
  17. }
  18. popLayer.prototype.init = function (target, options) {
  19. this.options = options;
  20. this.target = target;
  21. this.timeout = null;
  22.  
  23. target.fadeIn();
  24. if(options) {
  25. if (options.timeout !== undefined ) {
  26. if(options.timeout > 0){
  27. console.log(options.timeout);
  28.  
  29. target.timer = setTimeout(function(){
  30. target.hide();
  31. $('.popmask').hide();
  32. },options.timeout);
  33. }
  34. }
  35. }
  36. //创建遮罩层
  37. var $mask = $('<div class="popmask"></div>');
  38. if($('.popmask').length === 0){
  39. $('body').append($mask);
  40. }
  41. $('.popmask').show();
  42.  
  43. //弹出层居中
  44. var target = this.target;
  45. target.css({
  46. marginTop : -1 * (target.height() / 2),
  47. marginLeft : -1 * (target.width() / 2)
  48. });
  49.  
  50. //右上角关闭按钮
  51. this.target.find('.close').click(function(){
  52. $(this).parents('.poplayer').hide();
  53. $('.popmask').hide();
  54. });
  55. //按ESC关闭所有弹层
  56. $(document).keydown(function(ev){
  57. if(ev.keyCode==27){
  58. $('.poplayer').hide();
  59. $('.popmask').hide();
  60. }
  61. });
  62. /*
  63. //弹出层拖拽
  64. var target=this.target;
  65. var canMove = false,Rx, Ry;
  66. target.mousedown(function (event) {
  67. Rx = event.pageX - (parseInt(target.css("left")) || 0);
  68. Ry = event.pageY - (parseInt(target.css("top")) || 0);
  69. target.css("position", "fixed").css('cursor', 'move');
  70. canMove = true;
  71. }).mouseup(function () {
  72. canMove = false;
  73. target.css('cursor', 'auto');
  74. });
  75. $(document).mousemove(function (event) {
  76. if (canMove) { target.css({ top: event.pageY - Ry, left: event.pageX - Rx }); }
  77. });*/
  78.  
  79. }
  80. //关闭弹出层
  81. popLayer.prototype.close = function () {
  82. this.target.hide();
  83. $('.popmask').hide();
  84. }
  85.  
  86. /*
  87. //示例
  88. //var a = new popLayer($('.js_collect_pop'),{timeout:2000});//延时关闭
  89.  
  90. var a = new popLayer($('.js_collect_pop'));
  91. //var b = new popLayer($('.js_design_pop'));
  1. //a.close();
  1. });

..

...

代码: jquery 插件开发(自用插件)的更多相关文章

  1. jQuery插件开发——全屏切换插件

    这个插件包含三个部分:HTML结构.CSS代码和JS代码. HTML结构是固定的,结构如下: <!--全屏滚动--> <div class="fullpage-contai ...

  2. jQuery插件开发,jquery插件

    关于jQuery插件的开发自己也做了少许研究,自己也写过多个插件,在自己的团队了也分享过一次关于插件的课.开始的时候整觉的很复杂的代码,现在再次看的时候就清晰了许多.这里我把我自己总结出来的东西分享出 ...

  3. 自己动手开发jQuery插件全面解析 jquery插件开发方法

    jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...

  4. 基于jquery下拉列表树插件代码

    分享一款基于jquery下拉列表树插件代码.这是一款实用的jquery 树形下拉框 下拉树代码下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <table width= ...

  5. JavaScript学习笔记(四)——jQuery插件开发与发布

    jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...

  6. JavaScript学习总结(四)——jQuery插件开发与发布

    jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...

  7. jQuery插件开发精品教程,让你的jQuery提升一个台阶

    要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...

  8. jquery插件开发

    jQuery是一个封装的很好的类,比如我们用语句$("#btn1") 会生成一个 jQuery类的实例. 一.jQuery插件开发注意要点 1.使用闭包,避免全局依赖,避免第三方破 ...

  9. jQuery插件开发(溢出滚动)

    声明:此程序仅针对手机端,简单的封装一个插件,意在记载插件的开发过程,如有错误及不足之处,还望即时指出. 移动开发的时候,我们经常会遇到滑动事件,众所周知手机端滑动主要依靠touch事件.最近接连遇到 ...

随机推荐

  1. mybatis foreach 遍历list中的坑

    将jdbc改写为mybatis时,传入的条件为list使用到的标签是<where> .<choose>.<when>.<if>.<foreach& ...

  2. ASP.NET MVC 阻止通过Url直接访问服务器上的静态文件

    某些情况下我们需要在服务器上保存一些静态文件,比如用户上传到服务器的文件,如果刚好这些文件的保存目录是应用程序目录下的一个子目录的话,别人就可以通过Url直接访问这个文件. 例如:在应用程序目录下的U ...

  3. Javascript Canvas验证码

    用Canvas画的验证码,效果图如下 1.验证码的JS代码,保存到一个名称是validatedCode.js的文件内,代码如下: (function(window,document){ functio ...

  4. echarts背景分割区域填充不同颜色(x轴为time),实时刷新

    先来看下图片吧,这是实现效果: 思路: 因为要实时刷新,可以使用setInterval(),但是要控制好定时器的起与停,否则容易错乱以及页面卡死: 主要就是利用定时器五秒刷新,重绘echarts图:= ...

  5. ID3-C45-CART

    区别:使用不同的属性选择度量. 信息增益偏向多值属性 信息增益率倾向产生不平衡的划分 基尼指数偏向多值属性,并且当类的数量很大时会有困难,还倾向于导致相等大小的分区和纯度 C4.5: 优点:产生的分类 ...

  6. 解决使用C/C++配置ODBC链接使用SQLConnect返回-1

    VS中建立空项目使用ODBC连接时,SQLConnect函数总是返回-1,mysql和命令行连接数据库都是没问题的 retcode = SQLConnect(hdbc, (SQLCHAR*)" ...

  7. python写service时全局变量问题

    在尝试用flask写service的过程中,我发现全局变量使用虽然很方便,但其实是很冒险的. 本次我使用的是声明global变量的方式,如果作为本地的单次使用的程序来说,确实没有问题并且很好用,对于竞 ...

  8. 全志A33 lichee怎样编译镜像

    对于全志A33 lichee编译镜像文件需要先搭建好交叉编译环境,这个搭建环境可以看之前的文档 "SINA33开发板怎样创建编译环境" 开发平台 * 芯灵思SinlinxA33开发 ...

  9. Java面向对象 第2节 Scanner 类和格式化输出printf

    §Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. 1.创建 Scanner 对象的基本语法:Scanner s = ...

  10. oracle-------window安装

    安装虚拟机(没难度,傻瓜装机) 然后右键左边  新建虚拟机 自定义------下一步------- 稍后安装操作系统------下一步 下一步 下一步 下一步 下一步,完成 然后启动,就可以启动一个系 ...