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数组组合成字符串的脚本
Jan 06 Javascript
JavaScript开发时的五个注意事项
Dec 08 Javascript
JavaScript编程开发中的五个实用小技巧
Jul 22 Javascript
javascript检测对象中是否存在某个属性判断方法小结
May 19 Javascript
javascript的事件触发器介绍的实现
Jun 05 Javascript
jQuery的position()方法详解
Jul 19 Javascript
日常收集整理的JavaScript常用函数方法
Dec 10 Javascript
JavaScript函数柯里化详解
Apr 29 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
Nov 09 Javascript
jQuery 选择符详细介绍及整理
Dec 02 Javascript
jquery+ajax实现省市区三级联动效果简单示例
Jan 04 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
Apr 25 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实现邮件发送并带有附件
2014/01/24 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
2013/11/26 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
NodeJs form-data格式传输文件的方法
2017/12/13 NodeJs
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
详解微信小程序开发聊天室—实时聊天,支持图片预览
2019/05/20 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
2020/03/10 Javascript
Python实现Const详解
2015/01/27 Python
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
python动态参数用法实例分析
2015/05/25 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
浅谈Pytorch torch.optim优化器个性化的使用
2020/02/20 Python
python正则表达式实例代码
2020/03/03 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
《难忘的泼水节》教学反思
2014/02/27 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
nginx之queue的具体使用
2022/06/28 Servers