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 相关文章推荐
JS 文件传参及处理技巧分析
May 13 Javascript
基于jquery的direction图片渐变动画效果
May 24 Javascript
单击按钮显示隐藏子菜单经典案例
Jan 04 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
Oct 23 Javascript
去除字符串左右两边的空格(实现代码)
May 12 Javascript
jquery请求servlet实现ajax异步请求的示例
Jun 03 jQuery
微信小程序获取循环元素id以及wx.login登录操作
Aug 17 Javascript
JS闭包的几种常见形式实例详解
Sep 16 Javascript
JavaScript使用小插件实现倒计时的方法讲解
Mar 11 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
Mar 17 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
Oct 02 Javascript
JavaScript利用html5新方法操作元素类名详解
Nov 27 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 日常开发小技巧
2009/09/23 PHP
php模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
php下pdo的mysql事务处理用法实例
2014/12/27 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
Linux下编译redis和phpredis的方法
2016/04/07 PHP
php的debug相关函数用法示例
2016/07/11 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
JavaScript Array扩展实现代码
2009/10/14 Javascript
jQuery图片播放8款精美插件分享
2013/02/17 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
jcrop基本参数一览
2013/07/16 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
原生JS实现图片翻书效果
2017/02/16 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
bootstrap-table+treegrid实现树形表格
2019/07/26 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
python中实现定制类的特殊方法总结
2014/09/28 Python
python实现逻辑回归的方法示例
2017/05/02 Python
python实现简易版计算器
2020/06/22 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
python主要用于哪些方向
2020/07/05 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
上海某公司.net方向笔试题
2014/09/14 面试题
安卓程序员求职信
2014/02/28 职场文书
cf搞笑广告词
2014/03/14 职场文书
北京青年观后感
2015/06/15 职场文书