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实现穷举排列(permutation)算法谜题解答
Dec 29 Javascript
JavaScript Sort 的一个错误用法示例
Mar 20 Javascript
js图片轮播手动切换效果
Nov 10 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
Sep 09 Javascript
80%应聘者都不及格的JS面试题
Mar 21 Javascript
jquery实现图片上传前本地预览
Apr 28 jQuery
jQuery实现简单的抽奖游戏
May 05 jQuery
bootstrap3使用bootstrap datetimepicker日期插件
May 24 Javascript
纯js实现动态时间显示
Sep 07 Javascript
详谈表单格式化插件jquery.serializeJSON
Jun 23 jQuery
vue 弹框产生的滚动穿透问题的解决
Sep 21 Javascript
js之ajax文件上传
May 13 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
Zend的AutoLoad机制介绍
2012/09/27 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
CI框架中zip类应用示例
2014/06/17 PHP
PHP读书笔记整理_结构语句详解
2016/07/01 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
js图片预加载示例
2014/04/30 Javascript
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
继续学习javascript闭包
2015/12/03 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
从零学python系列之从文件读取和保存数据
2014/05/23 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
财务工作者先进事迹材料
2014/01/17 职场文书
学生会竞聘书范文
2014/03/31 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
2014年技术部工作总结
2014/12/12 职场文书
总经理岗位职责
2015/02/04 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python