$.extend()主要是用来扩展插件的,所谓的插件就是封装好的函数或者方法,可以直接调用。

$.extend()与$.fn.extend()(或者写成$.prototype.extend()或者jquery.prototype.extend())这两个好像,但又不一样,主要区别在哪里呢,区别在于前者是对jQuery类的一个封装,可以把jQuery看成一个类;而后者是经过实例化进行调用实例化的函数。

举个例子:

写个简单的求最大值或者最小值的插件:

首先看$.extend(),

$.extend({

max:function(a,b){

return a>b?a:b;

},{

min:function(a,b){

return a<b?b:a;

})

这里就可以直接调用:$.max(2,3)//3

再看$.fn.extend():

$.fn.extend({
alertWhileClick: function() {
$(this).click(function() {
alert($(this).val());
});
}
});
//$("#input1")是jQuery的实例,调用这个扩展方法
$("#input1").alertWhileClick();

另外,$.extend(obj1,obj2)这种写法是将obj2中与obj1中相一样的属性进行覆盖,并且添加obj1中没有的属性,如果obj1中有某个属性而obj2中没有,那么最后在替换后的obj1中也会保持存在,extend这个单词就是扩展的意思,也就是obj2里的是用来更新obj1的内容的。

举个综合例子:

<div value='100' id="content" style="width: 100px;height: 100px;border: 1px solid green;" ></div>

<script type="text/javascript">
(function($){

$.fn.extend({//这里加个大括号说明这里是个对象,那用jq实例化之后直接像调用object一样去调用函数就可以了。
'setColor':function(option){

var defult={
background:'green'
}
$.extend(true, defult, option);

$(this).css('background',defult.background);
}
})
$('#content').setColor()//默认绿色
$('#content').setColor({background:'red'})//红色

})

</script>

参考:http://www.cnblogs.com/yuqingfamily/p/5775950.html

随机推荐

  1. OpenFlow_tutorial_2_Install_Required_Software

    一.Required Software 我操作系统用的 ubuntu 18.04.vm image的OS是ubuntu14.04,这两个系统的GUI应该已经不兼容了,如果使用ubuntu18.04的主 ...

  2. 时钟周期 VS 机器周期

    时钟周期vs机器周期 Clock cycle The speed of a computer processor, or CPU, is determined by the clock cycle, ...

  3. VC++线程函数内怎么调用外部函数

    VC++线程函数内怎么调用外部函数 1.把外部函数做成静态函数,就可以直接调用了.2.把外部函数所在的对象通过线程函数参数传到线程里面来,这样线程里可以使用此对象及其函数了.

  4. JavaSE-11 接口

    学习要点 接口的定义 接口作为约定 接口作为能力 接口 为什么使用接口 需求描述 要求实现防盗门的功能(防盗门:带锁的门). 需求分析 门有“开”和“关”的功能,锁有“上锁”和“开锁”的功能. 将门和 ...

  5. mysql中删除已有字段的唯一性约束?

    username varchar() NOT NULL unique 如何把unique约束删除? 解决方法:在你建好的表...右击 ——索引/索引类型——把username唯一键去掉

  6. css float属性详解

    定义和用法 float 属性定义元素在哪个方向浮动.以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动.浮动元素会生成一个块级框,而不论它本身是何种元素.如果浮动非 ...

  7. [Python3网络爬虫开发实战] 1.4.1-MySQL的安装

    MySQL是一个轻量级的关系型数据库,本节中我们来了解下它的安装方式. 1. 相关链接 官方网站:https://www.mysql.com/cn 下载地址:https://www.mysql.com ...

  8. 4.model 字段

    一.字段名 字段名 类型 参数 AutoField(Field) - int自增列, 必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自 ...

  9. CIFAR100与VGG13实战

    目录 CIFAR100 13 Layers cafar100_train CIFAR100 13 Layers cafar100_train import tensorflow as tf from ...

  10. stark组件之显示页面内容搭建(六)

    之前主要介绍了前端页面list_fiter功能的显示,但是list_display功能的展示并没有过多介绍,这里介绍一下是如何实现的. 可以看到凡是蓝线圈起来的都是通过字段名反射一个个取出来的,红线的 ...