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 相关文章推荐
JavaScript 给汉字排序实例代码
Jun 28 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
Jan 09 Javascript
js中浮点型运算BUG的解决方法说明
Jan 06 Javascript
谈谈JavaScript异步函数发展历程
Sep 29 Javascript
jQuery使用正则表达式限制文本框只能输入数字
Jun 18 Javascript
jQuery属性选择器用法示例
Sep 09 Javascript
angular.js 路由及页面传参示例
Feb 24 Javascript
详解Vue生命周期的示例
Mar 10 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
Jun 09 jQuery
详解如何去除vue项目中的#——History模式
Oct 13 Javascript
基于input动态模糊查询的实现方法
Dec 12 Javascript
js中!和!!的区别与用法
May 09 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
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
2017/10/19 jQuery
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
vue实现井字棋游戏
2020/09/29 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
[42:50]NB vs VP 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
python遍历文件夹下所有excel文件
2018/01/03 Python
python删除不需要的python文件方法
2018/04/24 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
德国珠宝和配件商店:Styleserver
2021/02/23 全球购物
工厂实习感言
2014/01/14 职场文书
文科毕业生自荐书范文
2014/04/17 职场文书
护士自荐信范文
2015/03/25 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题
Python使用Kubernetes API访问集群
2021/05/30 Python
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
2022/04/08 Java/Android