jQuery编写widget的一些技巧分享


Posted in Javascript onOctober 28, 2010

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。
Javascript 相关文章推荐
简单介绍JavaScript中字符串创建的基本方法
Jul 07 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
Apr 13 Javascript
js判断空对象的实例(超简单)
Jul 26 Javascript
JavaScript简单下拉菜单特效
Sep 13 Javascript
Ajax实现不刷新取最新商品
Mar 01 Javascript
使用Angular CLI进行Build(构建)和Serve详解
Mar 24 Javascript
vue2.0使用v-for循环制作多级嵌套菜单栏
Jun 25 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
May 28 Javascript
详解Vue CLI 3.0脚手架如何mock数据
Nov 23 Javascript
发布Angular应用至生产环境的方法
Dec 10 Javascript
微信小程序实现的一键连接wifi功能示例
Apr 24 Javascript
Javascript查看大图功能代码实现
May 07 Javascript
jQuery timers计时器简单应用说明
Oct 28 #Javascript
jquery ajax abort()的使用方法
Oct 28 #Javascript
BOM与DOM的区别分析
Oct 26 #Javascript
js下判断 iframe 是否加载完成的完美方法
Oct 26 #Javascript
Javascript下判断是否为闰年的Datetime包
Oct 26 #Javascript
基于jquery的给文章加入关键字链接
Oct 26 #Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
Oct 26 #Javascript
You might like
PHP stream_context_create()作用和用法分析
2011/03/29 PHP
深入array multisort排序原理的详解
2013/06/18 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
教你php如何实现验证码
2016/01/20 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
js检测客户端不是firefox则提示下载
2007/04/07 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
JS判定是否原生方法
2013/07/22 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
js基于myFocus实现轮播图效果
2017/02/14 Javascript
js实现自定义进度条效果
2017/03/15 Javascript
Bootstrap table使用方法汇总
2017/11/17 Javascript
Vue插槽原理与用法详解
2019/03/05 Javascript
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
Python的Twisted框架上手前所必须了解的异步编程思想
2016/05/25 Python
python2.7实现爬虫网页数据
2018/05/25 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
Python批量启动多线程代码实例
2020/02/18 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
iHerb中文官网:维生素、保健品和健康产品
2018/11/01 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
上海微创软件面试题
2012/06/14 面试题
护士感人事迹
2014/05/01 职场文书
欢迎标语大全
2014/06/21 职场文书
体育教师教学随笔
2015/08/15 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
2021/06/09 Python
用Python编写简单的gRPC服务的详细过程
2021/07/04 Python