jQuery插件开发规范

1. 使用闭包

(function($) {
// Code goes here
})(jQuery);

这是来自jQuery官方的插件开发规范要求,使用这种编写方式有什么好处呢?

      a) 避免全局依赖。
      b) 避免第三方破坏。
      c) 兼容jQuery操作符'$'和'jQuery '。

2. 扩展

jQuery提供了2个供用户扩展的‘基类’ - $.extend和$.fn.extend.

$.extend 用于扩展自身方法,如$.ajax, $.getJSON等;

$.fn.extend则是用于扩展jQuery类,包括方法和对jQuery对象的操作。

为了保持jQuery的完整性,趋向于使用$.fn.extend进行插件开发而尽量少使用$.extend.

demo.js

;(function($){ //“;”是为了避免代码合并等不必要的错误

    $.fn.demo=function(options){
//使用对象的形式
var defaults={ //默认参数
color:'green'
}
// 将用户传进来的参数扩展覆盖默认参数
var options=$.extend({},defaults,options); //{}主要是为了创建一个新对象,保留对象的默认值
// 功能实现
this.each(function(){ //支持jQuery选择器
$(this).css('background',options.color);
});
return this; //使之能够链式操作
} })(jQuery);

demo.html

       ...
<title>demo</title>
<script src="jquery.js"></script>
<script src="demo.js"></script> //载入插件文件
... <div id="div1">
demo
<script>
$("#div1").demo({ //调用方式
color:'black' //如果用户不传递参数就使用默认参数
});
</script>
</div>
...

备注:官方推荐插件的命名标准写法是jquery.demo.v1.0.js或者jquery-demo-v1.0.js(jquery.插件名.版本号.js);

类级别的插件开发

1、直接给jQuery添加静态函数

jQuery.demo=function(){
//功能代码
} //调用方式:
$.demo();

2、使用extend()方法

jQuery.extend({
demo1:function(){
//功能代码
}
demo2:function(){
//功能代码
}
}); // 调用方式:
$.demo1();
$.demo2();

3、使用命名空间

jQuery.kongjian={
demo:function(){ }
} // 调用方式:
$.kongjian.demo();

最新文章

  1. 关于&quot;Command /usr/bin/codesign failed with exit code 1&quot;的解决办法
  2. Delphi关于记录文件的操作
  3. js判断页面点击事件
  4. 15.python笔记之psutil模块
  5. .net4.5 await async 简化之后的异步编程模型
  6. php pdo分页
  7. XSS的原理分析与解剖(二)
  8. Slickflow.NET 开源工作流引擎基础介绍(六)--模块化架构设计和实践
  9. HDU 4003-Find Metal Mineral(树状背包)
  10. 2D简单图形相关算法罗列
  11. HttpClient---------demo
  12. C#)Windows Shell 编程系列5 - 获取图标
  13. delphi 对抗任务管理器关闭(提升进程到Debug模式,然后设置进程信息SE_PROC_INFO)
  14. 《深度探索C++对象模型》笔记——Data语意学
  15. 七行代码开始flask
  16. BaseServer的介绍
  17. 推荐一款强大的3D家装开源软件
  18. Code::Blocks debug程序
  19. gitlab常用命令
  20. linux环境安装nagiosgraph将nagios的性能数据绘制成动态图表?

热门文章

  1. mysql字符集配置&mysql中文乱码
  2. yum无法安装nginx,报错内容为1:nginx-1.14.2-1.el7_4.ngx.x86_64: [Errno 5] [Errno 2] 没有那个文件或目录
  3. 35. docker swarm dockerStack 部署 投票应用
  4. ubuntu下查询网络的常用命令
  5. malloc 底层实现及原理
  6. PAT Advanced 1037 Magic Coupon (25) [贪⼼算法]
  7. RE数组开多大?
  8. windows server 2012 安装sql server集群
  9. Activity组件(二):通过显式意图和隐式意图来跳转至第三方应用
  10. redis简单了解与简单使用