1. 在编写widget的时候,一般我们需要绑定一些事件,最好将这些widget的绑定事件加上当前widget的命名空间。如果同一个jQuery对象,使用了两个widget,而两个widget都绑定了相同的事件名称,可能会出现问题。在销毁widget的时候,去除绑定事件也很方便,只需要unbind(”.namespace“)就可以了。
  2. 在写jQuery的时候,因为jQuery对象是支持连写的。譬如:$(obj).css("height","20px").attr("title","abc")....
  3. 在编写的时候可以利用javascript的原生方法来避免switch。
    switch(a)
    {
      case "aa":
        this._set_aa();
        break;
      case "bb":
        this._set_bb();
        break;
      case "cc"
        this._set_cc();
        break;
    }

    上面的代码可以用下面的代码替换

    this["_set_"+a]();
  4. 尽量缓存jQuery对象,和各种变量。这样可以提高脚本的性能
  5. 采用变量缓存this指针,在最小化代码的时候this可以被最小化掉。
  6. 最好将css类名取一致的名称,然后定义变量保存起来。在使用的时候直接采用变量,这样就算css名称有调整,只需要改变变量缓存的值即可。同时代码在最小化的时候也能减小体积。
  7. setOption的时候,如果一个option是复杂对象,而不是简单的值对象,最好不要简单的this.options[key]=value.而在这之前需要将value和以前的option的值做一个extend,然后在赋值,这样可以保留复杂对象原有的部分值。比如:
    var a = {width:120,height:200};
    var c={width:200};
    a=c;
    a=$.extend(a,c);

    其结果是第一个a将是{width:20},会丢失掉height:200;而下面的那个将继续保留原始的height:200。

转载于:https://www.cnblogs.com/dail/archive/2010/10/27/1862597.html

jQuery编写widget的一些窍门相关推荐

  1. 使用 jQuery UI Widget Factory 编写有状态的插件(Stateful Plugins)

    使用 jQuery UI Widget Factory 编写有状态的插件(Stateful Plugins) 使用 jQuery UI Widget Factory 编写有状态的插件(Stateful ...

  2. jQuery UI Widget(1.8.1)工作原理--转载

    先看下代码的相关注释: /*!* jQuery UI Widget 1.8.1** Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) ...

  3. 重磅推荐12款jQuery编写的选择器

    我最近开始编写自己的jQuery选择器,我越来越开始意识到这是一种不错而简洁的完成某些特定任务的方式,而以往我使用的是迭代器. 这些选择器中如果不是你一直在寻找的,你也许根本将不会碰到.所以我决定写下 ...

  4. jQuery ui widget和jQuery plugin的实现原理简单比较

    一.创建 1.  jQuery plugin (function($){ $.fn.MyPlugin=function(){ //js代码 } })(jQuery) 为了与页面上其他代码友好相处,将p ...

  5. 【使用jquery编写第一个油猴(tempermonkey)脚本】

    使用jquery编写第一个油猴(tempermonkey)脚本 01. 下载安装油猴浏览器插件 0101. 关于浏览器的特别说明 0102. 油猴插件下载地址 02. 获取新脚本 0201. 油猴菜单 ...

  6. 基于JQuery 编写轮播图插件

    基于JQuery 编写轮播图插件 不管是实际开发还是平时的小项目中 ,页面一定有且多个的轮播图,那么为了效率大家可以考虑封装这样的小插件.下面一起看看他的使用方法吧 使用需要准备(往下滑动会看到): ...

  7. 基于Jquery编写的背单词app

    这是我的第一款基于Jquery编写的背单词app,使用Hbuilder工具,借助Eclipse软件,可以实现在手机直接安装app.该app界面比较简单,但主要是关于内容展现的,不涉及到数据库,所以看起 ...

  8. jQuery编写插件

    引言: 在项目中不同页面经常要用到已经写好的交互,比如弹窗,比如下拉菜单,比如选项卡,比如删除... 此时如果每次都把代码copy一份无疑是一件比较麻烦并且无趣的事情,而且个人认为有些low了,我们可 ...

  9. 【原】jQuery编写插件

    分享一下编写设置和获取颜色的插件,首先我将插件的名字命名为jquery.color.js.该插件用来实现以下两个功能1.设置元素的颜色.2.获取元素的颜色. 先在搭建好如下编写插件的框架: ;(fun ...

最新文章

  1. 18段代码带你玩转18个机器学习必备交互工具
  2. 网易NAPM Andorid SDK实现原理--转
  3. Swoole 自定义项目初始化事件处理的实现
  4. c++学习笔记之指向对象的指针以及对象数组
  5. BZOJ3123: [Sdoi2013]森林
  6. B 树、B+ 树、B* 树
  7. python数据分析简答题_Python数据分析与数据可视化-中国大学mooc-试题题目及答案...
  8. C语言刷抖音源码,iOS多种刷新样式、音乐播放器、仿抖音视频、旅游App等源码...
  9. jQuery的hide() 、show() 、toggle()
  10. React Native – 使用 JavaScript 开发原生应用
  11. Caused by: java.lang.ClassNotFoundException: javax.persistence.NamedStoredProcedureQuery
  12. MyBatisPlus:获取SQL传递过来的参数
  13. Glide4.0源码全解析(三),into()方法背后的故事
  14. 关于如何理解链表结构体指针引用LinkNode * L的问题
  15. Robocode 直线瞄准机器人
  16. QQ截图“钉在桌面上”:不用另外下载软件让图片在屏幕置顶,永远保持在最前面、最顶端
  17. 注塑模具设计的技术知识汇总
  18. 如何将flac音频格式转换mp3格式呢
  19. 三十九级台阶java_蓝桥杯 -- 第三十九级台阶
  20. 深圳店小秘Java后端面试

热门文章

  1. Linux16.04配置OpenCV3.2
  2. 关于C语言static定义函数类型的具体解释
  3. 太监式的自主知识产权研发特色 (Z)
  4. Struts2和Struts1.x的全面比较
  5. 嵌入式软件开发必看书籍推荐(C/C++、linux、软件开发)
  6. 银行错误将10万打给自己,客户有责任退还,银行难道没责任吗?
  7. 哪些职业申请贷款比较难?
  8. SystemVerilog文本值和数据类型
  9. nosuchelementexception 是什么异常_有甲状腺结节的人为什么越来越多?
  10. mysql distinct 条件,多行条件下的mysql distinct列