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获取浏览器语言动态加载JS文件示例代码
Oct 31 Javascript
jQuery实现可展开合拢的手风琴面板菜单
Sep 15 Javascript
跟我学习javascript的arguments对象
Nov 16 Javascript
jquery模拟实现鼠标指针停止运动事件
Jan 12 Javascript
php基于redis处理session的方法
Mar 14 Javascript
jQuery实现联动下拉列表查询框
Jan 04 Javascript
详解使用mpvue开发github小程序总结
Jul 25 Javascript
Vue加载组件、动态加载组件的几种方式
Aug 31 Javascript
JS Array.from()将伪数组转换成数组的方法示例
Mar 23 Javascript
JS实现炫酷轮播图
Nov 15 Javascript
vue导入.md文件的步骤(markdown转HTML)
Dec 31 Vue.js
javascript实现倒计时提示框
Mar 02 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
上传文件先创建目录 再上传到目录里面去
2010/12/29 PHP
php curl的深入解析
2013/06/02 PHP
php mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
详解php协程知识点
2018/09/21 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
jQuery前端分页示例分享
2015/02/10 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
微信小程序sessionid不一致问题解决
2019/08/30 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
python和ruby,我选谁?
2017/09/13 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
python爬取微信公众号文章
2018/08/31 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
python 中的9个实用技巧,助你提高开发效率
2020/08/30 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
荷兰在线体育用品商店:Avantisport.nl
2018/07/04 全球购物
阿巴庭院:Abba Patio
2019/06/18 全球购物
中专毕业生自荐信范文
2013/11/28 职场文书
学生个人自我鉴定范文
2014/03/28 职场文书
模具专业求职信
2014/06/26 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
SQL实现LeetCode(177.第N高薪水)
2021/08/04 MySQL
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python