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弹出DIV窗口层的效果
Sep 25 Javascript
JS实现进入页面时渐变背景色的方法
Feb 25 Javascript
Jquery promise实现一张一张加载图片
Nov 13 Javascript
JavaScript面向对象程序设计教程
Mar 29 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
May 17 Javascript
JS获取复选框的值,并传递到后台的实现方法
May 30 Javascript
使用JS实现图片展示瀑布流效果的实例代码
Sep 12 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
May 13 jQuery
vue scroller返回页面记住滚动位置的实例代码
Jan 29 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
Apr 01 Javascript
修改vue+webpack run build的路径方法
Sep 01 Javascript
开源一个微信小程序仪表盘组件过程解析
Jul 30 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
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
JS学习之一个简易的日历控件
2010/03/24 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
原生javascript实现图片按钮切换
2015/01/12 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
2015/01/29 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
AngularJS 过滤器(自带和自建)详解
2016/09/19 Javascript
解析jquery easyui tree异步加载子节点问题
2017/03/08 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
跟老齐学Python之网站的结构
2014/10/24 Python
Python实现豆瓣图片下载的方法
2015/05/25 Python
python基于右递归解决八皇后问题的方法
2015/05/25 Python
Python正则表达式知识汇总
2017/09/22 Python
Python里字典的基本用法(包括嵌套字典)
2019/02/27 Python
Python reduce函数作用及实例解析
2020/05/08 Python
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
店长职务说明书
2014/02/04 职场文书
留学经费担保书
2014/05/12 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
狮子林导游词
2015/02/03 职场文书
2015年老干部工作总结
2015/04/23 职场文书
Java实现多文件上传功能
2021/06/30 Java/Android
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android
centos8安装MongoDB的详细过程
2021/10/24 MongoDB