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 相关文章推荐
JQuery的ready函数与JS的onload的区别详解
Nov 21 Javascript
js 数值转换为3位逗号分隔的示例代码
Feb 19 Javascript
页面加载完毕后滚动条自动滚动一定位置
Feb 20 Javascript
javascript中if和switch,==和===详解
Jul 30 Javascript
AngularJs自定义服务之实现签名和加密
Aug 02 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
Aug 17 Javascript
node.js express安装及示例网站搭建方法(分享)
Aug 22 Javascript
Angular ng-repeat 对象和数组遍历实例
Sep 14 Javascript
jQuery按需加载轮播图(web前端性能优化)
Feb 17 Javascript
浅谈vuex之mutation和action的基本使用
Aug 29 Javascript
通过layer实现可输入的模态框的例子
Sep 27 Javascript
基于openlayers实现角度测量功能
Sep 28 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.MVC的模板标签系统(二)
2006/09/05 PHP
php的header和asp中的redirect比较
2006/10/09 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
2014/06/21 PHP
ThinkPHP的常用配置选项汇总
2016/03/24 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
php求斐波那契数的两种实现方式【递归与递推】
2019/09/09 PHP
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
JavaScript中的方法调用详细介绍
2014/12/30 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
vuex管理状态仓库使用详解
2020/07/29 Javascript
jQuery冲突问题解决方法
2021/01/19 jQuery
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
bpython 功能强大的Python shell
2016/02/16 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
python的多重继承的理解
2017/08/06 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
python matplotlib中文显示参数设置解析
2017/12/15 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
python 自动去除空行的实例
2018/07/24 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
大堂副理的岗位职责范文
2014/02/17 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
中秋晚会致辞
2015/07/31 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS
Python中递归以及递归遍历目录详解
2021/10/24 Python
Mac电脑OS系统下安装Nginx的详细教程
2022/04/14 Servers
Win11开始菜单添加休眠选项
2022/04/19 数码科技