jQuery自定义插件详解及实例代码


Posted in Javascript onDecember 29, 2016

 jQuery自定义插件

jQuery是一个功能强大的库,提供了开发JavaScript项目所需的所有核心函数。然而,有时候我们还是需要使用自定义代码来扩展这些核心函数来提高开发效率。

jQuery库是为了加快JavaScript的开发速度而设计的,通过简化编写JavaScript的方式,减少代码量。

jQuery编写插件有两种方式

1.添加jQuery对象级别的插件,原理是给jQuery类添加方法。

写法如下:

(function($){
  $.fn.extend({
    函数名:function(自定义参数){
      //自定义插件代码部分
    }
  });
})(jQuery);
//第二种写法
(function($){
  $.fn.函数名=function(自定义参数){
    //自定义插件代码
  }
})(jQuery);

//调用方法
("#id").函数名(参数);

2.添加jQuery类级别的方法,也就是添加静态方法

写法如下:

(function($){
  $.extend({
    函数名:function(自定义参数){
      //自定义插件代码  
    }
  });
})(jQuery);
//第二种写法
(function($){
  $.函数名=function(自定义参数){
    //自定义插件代码
  }
})(jQuery);

//调用方式
$.函数名(参数);

jQuery插件的种类

1.对象级别插件开发,即给jQuery对象添加方法,封装对象方法的插件,例如:append()、val()。
2.类级别插件开发,即给jQuery添加全局函数,相当于给类本身添加方法,例如:$.ajax();

jQuery的插件机制

jQuery为开发插件提供了两种方法。

1. jQuery.fn.extend(object),给jQuery对象添加方法。

2. jQuery.extend(object),给jQuery类添加方法。

这两个方法接收的参数都是一个对象,类型为Object,Object里面的”名/值”分别对应”函数名/函数主体”。

fn是什么

查看jQuery源码:

<span style="font-size:12px;">jQuery.fn = jQuery.prototype = { init: function( selector, context ) {//....  //...... }; </span>

从源码中查看,可以得出:

jQuery.fn=jQuery.prototype
//fn指向jQuery对象的原型,即为jQuery类添加成员函数。

这里我写一个简单的例子来实现一个最简单的插件,仅仅是用来说明一下如何使用jQuery开发插件。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>自定义jQuery插件</title>
<script src="plugs/jquery-2.2.3.min.js"></script>
<script>
//这是一个自定义的jQuery插件
(function(){
  $.fn.extend({
    myFirst:function(){
      var s="This is my first jQuery";
      $(this).append(s);
    }
  });
})(jQuery);
</script>
</head>

<body>
<div id="i1"></div>
<script>
$("#i1").myFirst();
</script>
</body>
</html>

执行以后返回的页面为:

jQuery自定义插件详解及实例代码

以上仅仅介绍如何使用jQuery开发自定义插件,会使用以后就可以开发更复杂的插件了。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
Mar 23 Javascript
百度地图api应用标注地理位置信息(js版)
Feb 01 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
Nov 19 Javascript
实现51Map地图接口(示例代码)
Nov 22 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
Oct 14 Javascript
JavaScript中Date对象的常用方法示例
Oct 24 Javascript
谈谈我对JavaScript DOM事件的理解
Dec 18 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
May 23 Javascript
Vue多种方法实现表头和首列固定的示例代码
Feb 02 Javascript
Vue中props的使用详解
Jun 15 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
Aug 10 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
May 20 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
Dec 29 #Javascript
JavaScript获取短信验证码(周期性)
Dec 29 #Javascript
JavaScript实现同一个页面打开多张图片
Dec 29 #Javascript
Javascript 对cookie操作详解及实例
Dec 29 #Javascript
前端 Vue.js 和 MVVM 详细介绍
Dec 29 #Javascript
javascript显示系统当前时间代码
Dec 29 #Javascript
解析JavaScript模仿块级作用域
Dec 29 #Javascript
You might like
一个用于mysql的数据库抽象层函数库
2006/10/09 PHP
PHP 图像尺寸调整代码
2010/05/26 PHP
浅析PHP原理之变量(Variables inside PHP)
2013/08/09 PHP
PHP安全上传图片的方法
2015/03/21 PHP
详解php比较操作符的安全问题
2015/12/03 PHP
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
jQuery-serialize()输出序列化form表单值的方法
2012/12/26 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
2017/03/28 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
VUE预渲染及遇到的坑
2018/09/03 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
2019/01/25 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
node.js基础知识汇总
2020/08/25 Javascript
js实现抽奖功能
2020/11/24 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
简单理解Python中的装饰器
2015/07/31 Python
发布你的Python模块详解
2016/09/15 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
浅谈Python脚本开头及导包注释自动添加方法
2018/10/27 Python
Python最小二乘法矩阵
2019/01/02 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
CSS3实现水平居中、垂直居中、水平垂直居中的实例代码
2020/02/27 HTML / CSS
JNI的定义
2012/11/25 面试题
班组长安全职责
2014/01/05 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
致长跑运动员加油稿
2014/02/20 职场文书
学习十八大坚定理想信念心得体会
2014/03/11 职场文书
《秋思》教学反思
2016/02/23 职场文书