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 相关文章推荐
学习ExtJS border布局
Oct 08 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
Jun 19 Javascript
jQuery+formdata实现上传进度特效遇到的问题
Feb 24 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
Mar 14 Javascript
JavaScript学习笔记之创建对象
Mar 25 Javascript
JavaScript生成验证码并实现验证功能
Sep 24 Javascript
JavaScript中for循环的几种写法与效率总结
Feb 03 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
Mar 24 jQuery
javascript实现电脑和手机版样式切换
Nov 10 Javascript
JS module的导出和导入的实现代码
Feb 25 Javascript
JS实现指定区域的全屏显示功能示例
Apr 25 Javascript
js实现验证码干扰(动态)
Feb 23 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
在Ubuntu 14.04上部署 PHP 环境及 WordPress
2014/09/02 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
js登录弹出层特效
2014/03/07 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
jQuery实现简单倒计时功能的方法
2016/07/04 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
2019/04/30 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
Python读取Word(.docx)正文信息的方法
2018/03/15 Python
numpy.delete删除一列或多列的方法
2018/04/03 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
解析Python3中的Import
2019/10/13 Python
Django框架models使用group by详解
2020/03/11 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
2014/08/19 HTML / CSS
印尼旅游网站:via
2017/11/12 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
外语系毕业生自荐信范文
2013/12/16 职场文书
护理人员的自我评价分享
2014/03/15 职场文书
教师专业自荐信
2014/05/31 职场文书
小学班级特色活动方案
2014/08/31 职场文书
教师师德师风个人整改方案
2014/09/18 职场文书