jquery插件编写
2016-02-26 15:53
543 查看
参照公众号”jquery大师“的jquery插件编写分享,在这里做一次转载。
编写jquery插件的方法主要有三种:
1、第一种是最常见的,通过一个简单的jquery函数prototype属性的别名(jquery.fn)进行扩展;
2、第二种方法采用jquery函数extend()方法;
3、第三种是最为复杂的方法,是使用强大发jqueryUIWidgeFactory进行扩展(不常用到,略去)。
jquery插件命名规范:通常采用jquery.PluginName.js来命名。
首先分析第一种插件方法:
因为在jquery源码中有这么一段代码:
因此第一种插件方法可以这样写:
再采用自调用函数将其包装起来,完整的插件编写代码是:
第二种插件方法:
需要注意的是,使用extend方法来扩展方法有两种方法,相对应的就有两种调用方法,这两种扩展方法分别是
和
相对应的调用方法分别为
我们知道jquery是javascript的一个对象,如String,Data,Number,Array,Math以及浏览器对象一样,而带有$的函数是由jquery对象直接调用,dom元素为jquery实例化对象,我们引进面向对象的方法就更好理解这一关系。可以将这一关系理解成这样的代码(并非真实代码):
$.ajax等方法可以看成是jquery的静态发那个发,on()方法可以看做是jquery的一般方法,故调用jquery的静态方法和一般方法即为:jquery.ajax()和dom.on()。(静态方法要有类名来引用,一般方法要由实例化对象来引用)。
插件部分:
引用部分:
插件部分:
引用部分:
这两种方法的写法差别很小,只是范围不同,使用
若我们想要写点击dom元素时,背景改变颜色,
编写jquery插件的方法主要有三种:
1、第一种是最常见的,通过一个简单的jquery函数prototype属性的别名(jquery.fn)进行扩展;
2、第二种方法采用jquery函数extend()方法;
3、第三种是最为复杂的方法,是使用强大发jqueryUIWidgeFactory进行扩展(不常用到,略去)。
jquery插件命名规范:通常采用jquery.PluginName.js来命名。
首先分析第一种插件方法:
因为在jquery源码中有这么一段代码:
jQuery.fn=jQuery.prototype={A:function(){},B:function(){}......}
因此第一种插件方法可以这样写:
jQuery.fn.MyPlugin = function(){//代码}
再采用自调用函数将其包装起来,完整的插件编写代码是:
(function($){ $.fn.myPlugin=function(){ //代码块 } })(jQuery)
第二种插件方法:
需要注意的是,使用extend方法来扩展方法有两种方法,相对应的就有两种调用方法,这两种扩展方法分别是
$.extend({function(){}})
和
$.fn.extend({fun:function(){}})
相对应的调用方法分别为
$.fun()和
$("selector").fun(),这么理解这两种方法呢?
我们知道jquery是javascript的一个对象,如String,Data,Number,Array,Math以及浏览器对象一样,而带有$的函数是由jquery对象直接调用,dom元素为jquery实例化对象,我们引进面向对象的方法就更好理解这一关系。可以将这一关系理解成这样的代码(并非真实代码):
jquery = new javascript(); dom = new jquery();
$.ajax等方法可以看成是jquery的静态发那个发,on()方法可以看做是jquery的一般方法,故调用jquery的静态方法和一般方法即为:jquery.ajax()和dom.on()。(静态方法要有类名来引用,一般方法要由实例化对象来引用)。
$.fn.extend实现:
插件部分:
;(function($){ $.fn.extend({ myPlugin:function(color1,color2){ $(this).click(function(){ $(this).css({'color':black,'textDecoration':'line-through'}); return $(this); }) } }); })(jQuery)
引用部分:
$('a').myPlugin('pink','yellow')
$.extend实现:
插件部分:
;(function($){ $.extend({ myPlugin:function(color1,color2){ $(this).click(function(){ $(this).css({'color':black,'textDecoration':'line-through'}); return $(this); }) } }); })(jQuery)
引用部分:
$.myPlugin('pink','yellow')
这两种方法的写法差别很小,只是范围不同,使用
$.fn.extend()扩展方法只对对应的
$("selector")相关,而
$.extend()对整个页面都是相关的。
若我们想要写点击dom元素时,背景改变颜色,
$.extend({myPlugin:function()})来扩展时,调用时事
$.myPlugin(),即无论你点击哪个dom元素,背景颜色都会改变,若用
$.fn.extend({myPlugin:function()})来扩展,
$(dom).myPlugin()来调用,只有点击这个元素时,网页颜色才会改变。
相关文章推荐
- jQuery常用方法
- jquery 提示简单效果插件 cluetip
- Jquery 限制文本框输入字数
- Javascript-jQuery【1】-用promise()实现html()回调函数
- jquery PrintArea 实现票据的套打
- jquery 中$符号六大作用
- 转载 分页jquery,插件
- jQuery学习笔记四(jQuery - AJAX)
- jQuery的弹出窗口插件colorbox
- Jquery animate使用
- jquery.fileupload.js插件使用初探--多图片上传预览
- jQuery插件ajax图片上传插件
- jquery.fileupload.js插件使用初探--单图片上传预览
- Form表单利用Jquery Validate验证以及ajax提交
- jquery plugins —— datatables 搜索后汇总
- jquery plugins —— datatables 增加行号
- GridView中使用 jQuery DatePicker (UpdatePanel)
- jQuery特效 隔行变色
- jquerydom对象和字符串之间的转换
- jquery datetimepicker 时间选择控件